javascript 变量返回 NaN

javascript variable returning NaN

我有下面的函数,不太明白为什么newOutput returns NaN。我将 0 传递给 newOutput 作为初始值。

第console.log returns "0"

第二个 console.log returns arrayFinal 的值(在我的脚本之前构建)作为字符串(所有数字都没有空格——例如 1,21,322,14,18.3) .

第三个console.logreturn未定义。

最后一个 console.log returns NaN,函数的 return 语句也是如此。

失败的地方很明显,但我的问题是为什么这个函数既能把arrayFinal转成字符串又不能得到arrayFinal[i]的值?

function itemSum(newOutput, arrayFinal)
{
    for(i = 0; i < arrayFinal.length; i++);
    console.log(newOutput);
    console.log(arrayFinal.toString());
    newOutput = arrayFinal[i] + newOutput;
    console.log(arrayFinal[i]);
    console.log(newOutput);
    return newOutput;
};

已编辑以更正问题

function itemSum(newOutput, arrayFinal)
{
    for(i = 0; i < arrayFinal.length; i++)
    {
        console.log(newOutput);
        console.log(arrayFinal.toString());
        newOutput = arrayFinal[i] + newOutput;
        console.log(arrayFinal[i]);
        console.log(newOutput);
        return newOutput;
    }
};

您缺少一组花括号。

而不是:

 for(i = 0; i < arrayFinal.length; i++) {
    // inner code
 }

你有

 for(i = 0; i < arrayFinal.length; i++);
 // more code

第一个 for 行实际上是一个空循环。它将递增 i 直到等于 arrayFinal.length,然后在该循​​环完成后执行其余代码。

然后,当您访问 arrayFinal[i] 时,您正在查找数组末尾之后的一个。 javascript returns undefined.

而不是崩溃(就像某些语言在这种情况下所做的那样)

然后undefined加上一个数字returnsNaN.

每个参数的输入在哪里? 你调用函数了吗?

newOutput = arrayFinal[i] + newOutput; 时变量 i 将具有值 arrayFinal.lengtharrayFinal[arrayFinal.length] returns undefined,添加到任何这导致 NaN。您可能打算写:

function itemSum(newOutput, arrayFinal)
{
    console.log(newOutput);
    console.log(arrayFinal.toString());
    for(i = 0; i < arrayFinal.length; i++) {
        newOutput = arrayFinal[i] + newOutput;
        console.log(arrayFinal[i]);
    }
    console.log(newOutput);
    return newOutput;
}

或类似的东西