添加数组值的函数返回NaN
Function to add values of array returns NaN
我有一个HTML表单,有一个文本框,你可以输入一个字符串,如"1+2+8",它会给你数字的总和。
我的脚本是为了添加数组"num"的所有数字并警告值。问题是警报显示NAN而不是总数。num中的值是浮点数,但警告仍然给出NaN。我看过这个问题,但这不是同一个问题。是什么原因造成的呢?
下面是HTML/JS
<html>
<head>
<script type="text/javascript">
function handleClick(event)
{
alert(this.textBox1.value);
var num = this.textBox1.value.split("+");
//convert string array to numbers
for(var i=0; i<num.length; i++)
{
num[i] = +num[i];
}
// add up the values
for(var i=0; i<num.length; i++)
{
var total = i + total;
}
alert(total); //Displays NaN instead of total
event.preventDefault(); // disable normal form submit behavior
return false; // prevent further bubbling of event
}
function doit()
{
document.forms.myform.addEventListener("submit", handleClick, true);
return true;
}
</script>
</head>
<body onload="doit()">
<form name="myform">
<div>
<textarea name="textBox1" rows="10" cols="80">
1+1
</textarea>
</div>
<input type="submit" value="Update"/>
</form>
</body>
</html>
在for循环外声明total变量并将其初始化为0。您还必须访问数组中的实际值(num[i]
),而不是循环变量(i
)。
解决方案如下:
var total = 0;
for(var i=0; i<num.length; i++)
{
total = num[i] + total;
}
尝试使用parseFloat()函数显式解析它为浮动
如
parseFloat("3.14");
你可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat
将字符串转换为整数时使用parseInt()
函数。parseFloat
表示支持非整数
相关文章:
- 如何防止Math.max()返回NaN
- 尝试求和时,在我的表的页脚中返回$NaN
- 为什么Math.pow(1,无穷大)返回NaN
- JavaScript:返回NaN(第2部分)
- 为什么这个代码返回NaN
- Protractor-分配给element.all.locator.count的变量返回NaN why
- javascript 在求和时返回 NaN
- 计算地理位置距离返回 NaN
- nan在C++中是什么意思?为什么pow(-4,-2.1)返回-nan
- 货币字段上的 parseInt 返回 NaN
- Javascript:解析csv中的字符串返回NaN(不是数字)
- JS脚本返回NaN
- 解析html td返回NaN
- Javascript函数返回NaN
- 在Javascript中计算日期会返回NaN-NaN-NaN
- 如果我对索引进行硬编码,它会按预期工作,为什么这个增量器会返回NAN
- new Date返回NaN或从服务器日期()开始的错误时间
- 变量递增返回 NaN
- 为什么我的基于约简的平均值函数返回 NaN
- Javascript-将字符串转换为Int会返回NaN错误