2017-10-01 34 views
0

我無法弄清楚爲什麼數字不會被加在一起。 其他一切似乎按預期工作。比如說,我輸入數字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

回答

0

也許你會考慮在使用+之前將數組元素轉換爲整數。

0

輸出結果爲'034'的原因是因爲字符串上的+=附加到字符串。如果數組內的值是字符串,則需要將它們解析爲整數,然後才能累加它們。

一個簡單的解析可以使用parseInt()

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

謝謝。我以前嘗試過使用parseInt,但是我必須錯誤地使用它。 –

+0

@MatthewNeidig不客氣。像這樣的小錯誤發生。 – Adriani6