和循环不执行加法。

问题描述:

我无法弄清楚为什么数字不会被加在一起。 其他一切似乎按预期工作。比如说,我输入数字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; 


} 
+0

我有两个很简单的问题......我知道我听起来像一个冲洗来实现,但我会问他们,因为不管怎么说,看到这,我只需...我。有。至!所以这里...第一:这是什么语言呢? Second_ಠ---第二:无论语言如何,你是否认真地需要帮助来弄清楚这一点? ლ(ಠ益ಠ사) – XenoRo

+0

JS中的二元'+'运算符是模糊的。它可以是数字加法或字符串连接。你的数组包含字符串,所以JS不会在这里做数学的事情。 – Thomas

+0

@AlmightyR它是[标签:javascript]。 'document.getElementById(...)。innerHTML'部分使得这个非常清晰/不受欢迎。 – Thomas

也许你会考虑在使用+之前将数组元素转换为整数。

输出结果为'034'的原因是因为字符串上的+=附加到字符串。如果数组内的值是字符串,则需要将它们解析为整数,然后才能累加它们。

一个简单的解析可以使用parseInt()

for (var i = 0; i < array.length; i++) { 
    sum = sum + parseInt(array[i]); 
} 
+0

谢谢。我以前尝试过使用parseInt,但是我必须错误地使用它。 –

+0

@MatthewNeidig不客气。像这样的小错误发生。 – Adriani6