2013-05-28 49 views
0

您好我正在嘗試使用以下代碼對Javascript進行求和。使用Javascript對數組進行求和

var data[]: 
var total=0; 
data.push[x]; // x is numbers which are produced dynamically. 
for(var i=0, n=data.length; i < n; i++) 
{ 
    total=total+data[i]; 
} 
alert(total) 

例如,如果x值分別是5,11,16,7。它顯示的總價值爲511167而不是總值5 + 11 + 16 + 7 = 39 你知道爲什麼會有這樣的結果嗎? 謝謝。

+0

你確定你的'x'實際上是一個int列表嗎? –

+0

爲什麼?因爲「+」運算符交互像concat ... – Pouki

+0

total = total + + data [i] –

回答

1

使用parseInt()功能的JavaScript

total=parseInt(total)+parseInt(data[i]); 
+0

你可以寫'total + = parseInt(data [i]);',如果total被初始化爲int,仍然是一個int –

+0

非常感謝。它現在有效。 – user1874941

+0

歡迎@ user1874941.Plz標記爲正確答案.. :-) –

0

試試這個:

var total = 0; 
for (var i = 0; i < someArray.length; i++) { 
    total += someArray[i] << 0; 
} 
1

與parseInt函數嘗試:

total=total+parseInt(data[i]); 
1

一個unary +data[i]只需鞭將字符串值轉換爲數字值:

total = total + (+data[i]); 

更妙的是,使用+=代替total=total+...

total += +data[i]; 

JSFiddle demo

0

使用parseInt函數()javascript函數....

總=總+ parseInt函數(數據[I]);

這看起來你提到動態的'x'有一個字符串類型。只需檢查「typeof x」。

相關問題