和循环不执行加法。
问题描述:
我无法弄清楚为什么数字不会被加在一起。 其他一切似乎按预期工作。比如说,我输入数字3和4.总和计算为'034',我需要它是'7'。和循环不执行加法。
function calculateSumAverage(){
// get input
var userChoice = document.getElementById("numInput").value;
// split it somehow with .split(" ")
var array = userChoice.split(" ");
// set sum var to 0
var sum = 0;
// set avg var to 0
//var avg = 0;
// loop input array and sum
for (var i = 0; i < array.length; i++) {
sum = sum + array[i];
}
// calc average
//var avg = sum/inputs.length;
// outpout to div
document.getElementById("result").innerHTML = sum;
//document.getElementById("result").innerHTML = avg;
}
答
也许你会考虑在使用+
之前将数组元素转换为整数。
答
输出结果为'034'的原因是因为字符串上的+=
附加到字符串。如果数组内的值是字符串,则需要将它们解析为整数,然后才能累加它们。
一个简单的解析可以使用parseInt()
for (var i = 0; i < array.length; i++) {
sum = sum + parseInt(array[i]);
}
+0
谢谢。我以前尝试过使用parseInt,但是我必须错误地使用它。 –
+0
@MatthewNeidig不客气。像这样的小错误发生。 – Adriani6
我有两个很简单的问题......我知道我听起来像一个冲洗来实现,但我会问他们,因为不管怎么说,看到这,我只需...我。有。至!所以这里...第一:这是什么语言呢? Second_ಠ---第二:无论语言如何,你是否认真地需要帮助来弄清楚这一点? ლ(ಠ益ಠ사) – XenoRo
JS中的二元'+'运算符是模糊的。它可以是数字加法或字符串连接。你的数组包含字符串,所以JS不会在这里做数学的事情。 – Thomas
@AlmightyR它是[标签:javascript]。 'document.getElementById(...)。innerHTML'部分使得这个非常清晰/不受欢迎。 – Thomas