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);

    结果:

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

  • 相关阅读:
    C++ 类的静态数据成员&静态成员函数
    C++构造函数
    世界末日的梦
    C++ const关键词
    平安夜的礼物
    C++ 友元
    D3D中的光照
    C++网络编程(卷1):学习笔记(一)
    Python 教程阅读笔记(四):数据结构
    Python 教程阅读笔记(三):更多控制流工具
  • 原文地址:https://www.cnblogs.com/destinyruru/p/5716517.html
Copyright © 2011-2022 走看看