我在这里尝试了所有操作-将数字乘以数组后,为什么我的totalArr总数变成NaN吗?
let amountArr = [];
for (let i=0; i<3; i++) {
// Find Data
let lineAmount = 0;
let selected = printArr.filter(function(obj) {
return obj.property == propertyArr[0] && obj.year == fromYear && obj.month == i+1;
})
if (selected.length) {
console.log("typeof (selected[0].amount): " + typeof(selected[0].amount))
console.log("selected[0].amount: " + selected[0].amount)
lineAmount = Number(selected[0].amount);
console.log("typeof (lineAmount): " + typeof(lineAmount))
console.log("lineAmount: " + lineAmount)
}
amountArr[i] += Number(lineAmount)
console.log("typeof (amountArr[i]): " + typeof(amountArr[i]))
console.log("amountArr[i] :" + amountArr[i])
console.log("-------------------------------------------")
}
console.log(amountArr)
这是console.log的结果
任何帮助都会很棒,我真的没有得到这个吗?!?
答案 0 :(得分:5)
amountArr[i] +=
这是一个未定义的值。
答案 1 :(得分:1)
在您的代码中使用
amountArr[i] += Number(lineAmount)
这意味着
amountArr[i] = amountArr[i] + Number(lineAmount)
但是amountArr[i]
是未定义的,当您向数字添加未定义的值时,它将变成NaN
。
您必须为数组amountArr
分配一些默认值