我写了一个函数showWorthSum()返回一个数组的总和。可以,但是我还提出了一个条件,如果数组的元素是一个数字,则仅应计算它,而应该跳过其余部分,但是如果是NaN,它将进入if块内部,并使整个结果为NaN。为什么呢
function addWorth()
{
var table1= document.getElementById("tableNetWorths");
var rowCount1= table1.rows.length;
//var row1= table1.insertRow(rowCount1);
var arr= [];
for(var count = 0; count < rowCount1; count++)
{
arr.push(table1.rows[count].cells[1].innerHTML);
}
arr.shift();
return arr;
}
function showWorthSum()
{
var returnedArr= addWorth();
//returnedArr.push(addWorth());
totalWorth= 0;
var arrCount= returnedArr.length;
for(var count = 0; count < arrCount; count++)
{
if(typeof(parseInt(returnedArr[count])) == 'number')
{
totalWorth= parseInt(totalWorth)+ parseInt(returnedArr[count]);
//document.write(returnedArr[count]);
}
}
return parseInt(totalWorth);
}
数组:{100.200。 'asdadasd',322,22}
按键:
<button class="btn btn-primary" onclick="document.write(showWorthSum())" type="button">Show Sum</button>
最佳答案
试试这个代替isNaN(parseInt(returnedArr[count])) === false
尽管根据定义NaN
是Not A Number
,但typeof NaN
是number
因此要检查变量是否为数字,请使用isNaN(value) === false
或!isNaN(value)
例子:isNaN(5) => false
isNaN("5") => false
isNaN("-5") => false
isNaN(true) => false
isNaN(false) => false
isNaN({}) => true
isNaN(NaN) => true
isNaN("test") => true
isNaN("5test") => true
isNaN("test5") => true
因此,您也可以使用!isNaN(returnedArr[count])
将其缩短
关于javascript - 为什么条件无法执行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44483192/