通过json对数据执行计算

Performing calculations on data via json

本文关键字:执行 计算 数据 json 通过      更新时间:2023-09-26

我正试图通过JSON对从外部源收集的数据进行简单的添加。我得到的数据是以字符串的形式返回的,但它是一个数字,所以我尝试使用parseInt()和number()都没有用。我展示了下面代码的一个简单部分:

 var total_energy = 0;
 var energy_val;
$.each(result.report.food.nutrients, function (i, v) {
if (v.name == "Energy"){
                     energy_val = v.value;
                     var energy = Number(energy_val);
                     total_energy = total_energy + energy;


                                          console.log("energy " + energy);
                                          console.log("totalenergy " + total_energy);
                                          energy_val = "";
                                          energy = 0;
  }
   }

控制台每次都会返回正确的能量值,但总能量值似乎与能量值保持不变。这笔钱似乎没有任何影响。有人能告诉我这个问题哪里出了问题吗?

console.log("energy " + total_energy);更改为console.log("energy " + energy);

tryparseInt您的值。。。可以是这个

我怀疑这是否是由于在迭代项的循环中创建的闭包。请尝试以下代码。

 var total_energy = 0;
 var energy_val;
$.each(result.report.food.nutrients, function (i, v) {
        var item = v;
       //Calling calculateEnergy() function so that each 'item' is the current instance 'v'  value.
       (function calculateEnergy(itemClicked))(item);
   }
function calculateEnergy(itemClicked){
   if(itemClicked.name == "Energy"){
                     energy_val = itemClicked.value;
                     var energy = Number(energy_val);
                     total_energy = total_energy + energy;
                     console.log("energy " + energy);
                     console.log("totalenergy " + total_energy);
                     energy_val = "";
                     energy = 0;
        }
}

我已经在代码中添加了注释。

Updateconsole.log()存在ajax请求问题。因此,与其进行日志记录,不如尝试创建一个htmldiv并填充其中的值。