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 の場合。5+11+16+7=39 の合計ではなく、合計値が 511167 と表示されます。ありがとう。

4

5 に答える 5

1

文字列値を数値に変換する前に単項+をホイップするだけです。data[i]

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

さらに良いことに、+=代わりにtotal=total+...次を使用します。

total += +data[i];

JSFiddle デモ

于 2013-05-28T12:29:15.613 に答える
1

parseInt()関数 JavaScriptを使用する

total=parseInt(total)+parseInt(data[i]);
于 2013-05-28T12:26:55.747 に答える
0

parseInt() JavaScript 関数を使用します....

合計 = 合計 + parseInt(data[i]);

これは、あなたが言及した「x」が動的に文字列型を持っているように見えます。「typeof x」を確認してください。

于 2013-05-28T13:02:46.710 に答える
0

これを試してください:

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