为什么这会返回NaN而不是数字?

时间:2015-06-18 09:36:33

标签: javascript

JavaScript noob here ...

我尝试遍历数组并将值一起添加。这就是我所拥有的:

var totalXyz;
var arrayLength = data.length;
for (var i = 0; i < arrayLength; i++) {
    totalXyz += parseInt(data[i]["xyz"]);
}
alert(totalXyz);

该警报返回NaN而不是总数。我究竟做错了什么?我已经检查过数据数组中包含我要添加的数字。只需要立即添加它们。

谢谢!

2 个答案:

答案 0 :(得分:4)

您需要totalXyz作为开头的数字:

var totalXyz = 0;

在您的代码中,您没有初始化它,因此它是undefined,而undefined加上任何数字都会为您提供NaN

答案 1 :(得分:0)

在添加之前,您没有初始分配totalXyz的数值。

所以这个:

var totalXyz;
totalXyz += parseInt(data[i]["xyz"]);

类似于:

totalXyz = undefined + parseInt(data[i]["xyz"]);

由于NaN + number = undefined

,会产生NaN

在进行计算之前,您需要初始化totalXyz的数值。