0

嗨,我正在尝试使用以下代码对 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 你知道为什么会这样吗?谢谢。

4

5 回答 5

1

使用parseInt()函数 javascript

total=parseInt(total)+parseInt(data[i]);
于 2013-05-28T12:26:55.747 回答
1

尝试使用 parseInt:

total=total+parseInt(data[i]);
于 2013-05-28T12:27:32.657 回答
1

只需在将字符串值转换为数值之前鞭打一元:+data[i]

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

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

total += +data[i];

JSFiddle 演示

于 2013-05-28T12:29:15.613 回答
0

试试这个:

var total = 0;
for (var i = 0; i < someArray.length; i++) {
    total += someArray[i] << 0;
}
于 2013-05-28T12:27:14.150 回答
0

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

总计 = 总计 + parseInt(data[i]);

这看起来你提到的'x'动态具有字符串类型。只需检查“typeof x”。

于 2013-05-28T13:02:46.710 回答