返回NaN的javascript变量
我有下面的函数,但我真的不明白为什么newOutput返回NaN。我将0作为初始值传递给newOutput 第一个console.log返回“0” 第二个console.log以字符串形式返回arrayFinal(在我的脚本前面构建)中的值(所有数值都不带空格,例如1,21322,14,18.3) 第三个console.log返回undefined 最后一个console.log返回NaN,函数的return语句也是如此 失败的原因显而易见,但我的问题是,为什么这个函数既能将arrayFinal转换为字符串,又不能获取arrayFinal[i]的值返回NaN的javascript变量,javascript,nan,Javascript,Nan,我有下面的函数,但我真的不明白为什么newOutput返回NaN。我将0作为初始值传递给newOutput 第一个console.log返回“0” 第二个console.log以字符串形式返回arrayFinal(在我的脚本前面构建)中的值(所有数值都不带空格,例如1,21322,14,18.3) 第三个console.log返回undefined 最后一个console.log返回NaN,函数的return语句也是如此 失败的原因显而易见,但我的问题是,为什么这个函数既能将arrayFinal
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;
};
函数itemSum(newOutput,arrayFinal)
{
对于(i=0;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;
}
};
函数itemSum(newOutput,arrayFinal)
{
对于(i=0;i
您缺少一组花括号
而不是:
for(i = 0; i < arrayFinal.length; i++) {
// inner code
}
for(i=0;i
你有
for(i = 0; i < arrayFinal.length; i++);
// more code
for(i=0;i
的第一行实际上是一个空循环。它将递增i
,直到它等于arrayFinal.length
,然后在循环完成后执行其余代码
然后,当您访问arrayFinal[i]
时,您正在查看一个数组的末尾。javascript不会崩溃(就像某些语言在这种情况下所做的那样),而是返回undefined
然后undefined
加上一个数字返回NaN
每个参数的输入在哪里?
你调用函数了吗?在newOutput=arrayFinal[i]+newOutput时
变量i
将具有值arrayFinal.length
和arrayFinal[arrayFinal.length]
返回未定义的
,并将其添加到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;
}
函数itemSum(newOutput,arrayFinal)
{
console.log(newOutput);
log(arrayFinal.toString());
对于(i=0;i
或者类似的东西数组中的数据是什么?for(i=0;inewOutput=arrayFinal[i]+newOutput时
变量i
将具有值arrayFinal.length
,该值返回undefined
,并添加到任何返回值NaN
中,该值由用户输入和一点数学运算生成。现在arrayFinal.toString()返回5,8,2,17.nope。那个分号不是故意的。这应该是一个注释。对不起,我对这个网站很陌生。是的。事情就是这样。它并没有像预期的那样工作,但现在它正在做一些有意义的事情——我只需要弄清楚如何告诉计算机我希望它从这里做什么。谢谢