zoukankan      html  css  js  c++  java
  • 关于由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);

    结果:

    会继续找原因,希望有发现原因的小伙伴可以告知,共同学习。。。

  • 相关阅读:
    微软外服 AlI In One
    js 循环多次和循环一次的时间的性能对比 All In One
    vue inject All In One
    Excel 表格数据倒置 All In One
    SVG tickets All In One
    OH MY ZSH All In One
    js array for loop performance compare All In One
    mac terminal show You have new mail All In one
    新闻视频 26 制作母版页
    转自牛腩 母版页和相对路径
  • 原文地址:https://www.cnblogs.com/destinyruru/p/5716517.html
Copyright © 2011-2022 走看看