【发布时间】:2016-05-04 15:29:59
【问题描述】:
我很好奇变量如何在 for 循环内成为整数,但在循环外立即变为 NaN。
var sumNum = 0;
for (var i = data.length - 1; i >=0; i--) {
sumNum += data[i].stored_value;
// check value inside loop
console.log(sumNum);
}
// check value outside loop
console.log(sumNum);
结果:
第一个console.log(sumNum) 打印递增的整数,因为我们迭代并在数组中添加stored_value。但第二个console.log(sumNum) 打印NaN。
我阅读了一个相关线程 (Variable becomes Nan when i try to use it outside of the .each function),解释了如果在循环内实例化变量会发生这种情况,但在我的情况下,变量是首先全局创建的。
任何人都可以分享一些关于如何发生这种情况的见解吗?
【问题讨论】:
-
请分享里面的数据是什么?
-
请提供
console.log(data[0].stored_value)的输出 -
用
data = [{stored_value:2},{stored_value:5}]测试没有问题 -
data[x].stored_value 的概率可能包含一些不适当的值,例如不能执行求和的字符/字符串。
-
@Sagar R -
stored_value在其中一个对象中不是数字...我认为这导致了问题。
标签: javascript