尝试将Number(value)相乘时给出NaN的数字数组

时间:2019-06-17 07:08:45

标签: javascript

我在这里尝试了所有操作-将数字乘以数组后,为什么我的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的结果

enter image description here

任何帮助都会很棒,我真的没有得到这个吗?!?

2 个答案:

答案 0 :(得分:5)

amountArr[i] += 

这是一个未定义的值。

答案 1 :(得分:1)

在您的代码中使用

amountArr[i] += Number(lineAmount)

这意味着

amountArr[i] = amountArr[i] + Number(lineAmount)

但是amountArr[i]是未定义的,当您向数字添加未定义的值时,它将变成NaN

您必须为数组amountArr分配一些默认值