如何在 javascript 中迭代可能的空值而不会出现错误

我的屏幕上有多达 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 个输入,它将起作用,所以我假设它是因为其他值为空?


呼啦一阵风
浏览 115回答 1
1回答

POPMUISE

Number.isNaN(value)如果值为 ,您可以使用该函数跳到下一个循环迭代NaN。请注意,您在代码中声明了它val,但从不使用它,而是finalVal在每个循环上声明一个新的。finalVal您应该在循环之前声明并在每次迭代时添加到循环中,如下所示:var finalVal = 0;for (var i = 0; i < 100; i++){&nbsp; &nbsp; var inputVal = $('#Input'+i).val();&nbsp; &nbsp; var floatVal = parseFloat(inputVal);&nbsp; &nbsp; if (Number.isNaN(floatVal))&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; continue;&nbsp; &nbsp; }&nbsp; &nbsp; finalVal += floatVal;}alert(finalVal);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript