为什么返回的是 NaN 而不是数字

Why is this returning NaN instead of a number?

本文关键字:数字 NaN 为什么 返回      更新时间:2023-09-26

JavaScript noob here...

我正在尝试遍历数组并将值相加。这是我所拥有的:

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

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

谢谢!

你需要

totalXyz开头是一个数字:

var totalXyz = 0;

在你的代码中,你没有初始化它,所以它是undefined的,undefined加上任何数字都会给你NaN

在执行加法之前,您最初没有分配totalXyz的数值。

所以这个:

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

类似于:

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

这会产生NaN,因为undefined + 数字 = NaN

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