2013-05-28 45 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”。

相关问题