我的屏幕上有多达 100 个输入,每个输入要么有一个数值,要么为空(因为它尚未加载到屏幕上),我希望能够获取每个输入的值,然后添加他们一起得到最终值。我尝试使用 for 循环来迭代它们,但是一旦到达空值,它就会返回“NaN”错误。第一个输入称为“Input1”,第二个输入称为“Input2”等...我的代码如下: var val = 0; //assigning the final value OUTSIDE the for loop to stop it assigning itself as 0 every loop for (var calc = 0; calc < 100; calc++) //less than 100 as of 100 inputs { var inputVal = $('#Input'+calc).val(); //grabbing each input on screen var floatVal = parseFloat(inputVal); // converting each value to float var finalVal = finalValue + floatVal; //takes the val of 0, and adds each input value onto it per loop } alert(finalVal);这总是返回“NaN”。例如,如果我将 for 循环设置为“calc < 2”,并在屏幕上加载 2 个输入,它将起作用,所以我假设它是因为其他值为空?
1 回答
POPMUISE
TA贡献1765条经验 获得超5个赞
Number.isNaN(value)如果值为 ,您可以使用该函数跳到下一个循环迭代NaN。
请注意,您在代码中声明了它val,但从不使用它,而是finalVal在每个循环上声明一个新的。finalVal您应该在循环之前声明并在每次迭代时添加到循环中,如下所示:
var finalVal = 0;
for (var i = 0; i < 100; i++)
{
var inputVal = $('#Input'+i).val();
var floatVal = parseFloat(inputVal);
if (Number.isNaN(floatVal))
{
continue;
}
finalVal += floatVal;
}
alert(finalVal);
添加回答
举报
0/150
提交
取消