gpt4 book ai didi

javascript - 为什么条件不执行?

转载 作者:行者123 更新时间:2023-11-28 17:55:46 24 4
gpt4 key购买 nike

我编写了一个函数showWorthSum()来返回数组的总和。确实如此,但我还设置了一个条件,如果数组的元素是数字,则应仅计算它,而应跳过其余部分,但如果是 NaN,它仍然会进入 if block ,并使整个结果为 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>

最佳答案

您可以使用 isFinite(returnedArr[count]) 代替“typeof(parseInt(returnedArr[count])) == 'number'”。

isFinite('foo')
false

isFinite('10')
true

isFinite(10)
true

isFinite('898.0900')
true

关于javascript - 为什么条件不执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com