關於由ajax返回的數據在for循環中只能取到最后一個數的問題


關於由ajax返回的數據在for循環中只能取到最后一個數的問題

以上是來自后台的數據格式。從數據中可以看出,里面包含兩個商品,每個商品價格分別為:1.98,13.60。這里我要計算兩個商品的總價格,但是通過for循環只能取到最后一個價格,也就是13.60。代碼如下:

1 //這段代碼在ajax發送請求成功后的回調函數中執行
2 //data為后台傳過來的數據
3 var data_str=eval("(" + data + ")");
4 for(var i=0;i<data_str.length;i++){
5     jsonVal=eval("(" + data_str[i] + ")");
6     var total_price = 0;
7     total_price=parseFloat(jsonVal.goodsnewprice)+total_price;
8 }
9 console.log(total_price);

 

結果:

在網上查閱了一些資料,沒有找到原因 回調函數是在已經接收到全部響應數據的情況下才被調用,不存在數據正在返回和返回不完全的情況但是可以這樣解決:將在for循環里的處理封裝成一個單獨的函數,然后在for循環里調用該函數。

 1 //處理函數  
 2 function chuli1(jsonVal){
 3     var res=parseFloat(jsonVal.goodsnewprice);
 4     return res;
 5 }
 6 //在for循環中調用
 7 for(var i=0;i<data_str.length;i++){
 8     var jsonVal=eval("(" + data_str[i] + ")");
 9     total_price += chuli1(jsonVal);
10 }
11 console.log(total_price);

 

結果:

 

 

會繼續找原因,希望有發現原因的小伙伴可以告知,共同學習。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM