javascript を使用して for ループからすべての数値を合計する必要があります
var nums = ['100','300','400','60','40'];
for(var i=1; i < nums.length; i++){
var num = nums[i] + nums[i];
alert(num);
}
誰か助けてもらえますかhttp://jsfiddle.net/GYpd2/1/
私が探している結果は900です
javascript を使用して for ループからすべての数値を合計する必要があります
var nums = ['100','300','400','60','40'];
for(var i=1; i < nums.length; i++){
var num = nums[i] + nums[i];
alert(num);
}
誰か助けてもらえますかhttp://jsfiddle.net/GYpd2/1/
私が探している結果は900です
var nums = ['100','300','400','60','40'];
var sum = 0;
for(var i=0; i < nums.length; i++){
sum += parseInt(nums[i]);
}
alert(sum);
テスト済み: http://jsfiddle.net/GYpd2/6/ (user1503606 に感謝)
数字のみが含まれている場合nums
、 は必要ありませんparseInt()
。
ES5 のArray.prototype.reduce
方法の代表的な例。お気に入り:
var nums = ['100','300','400','60','40'];
var total = nums.reduce(function(a,b) {
return (+a)+(+b);
});
var nums = ['100','300','400','60','40'],
num = 0;
for (var i = 0; i < nums.length; i++) {
num += +nums[i];
}
alert(num);
このようにしてください
var nums = ['100','300','400','60','40'];
var total = 0;
for(var i=0; i < nums.length; i++){
total = total + Number(nums[i]);
}
alert(total);
ループは1ではなく0から始まります。
total
変数はループの前に宣言する必要があります。そうしないと、前の追加が保持されません。
Number()を使用して、文字列を数値に変換します。
文字列を追加すると、連結'100'
+'200'
が。を与えることを意味します'100200'
。
var num, nums = [100,300,400,60,40];
for ( var i=1; i < nums.length; i++ ) {
num += nums[i];
}
alert(num);
reduce functionがある場合は、次のようにするだけです。
var nums = ['100','300','400','60','40'],
sum = nums.reduce(function(accum, val) {return accum + Number(val);}, 0);
alert(sum);
コードは次のとおりです。
var num=0, nums = ['100','300','400','60','40'];
for(var i=0; i < nums.length; i++){
num += parseInt(nums[i]);
}
alert(num);
以下は、LINQ の sum メソッドに似た Number プロトタイプの拡張を使用する例です。
Array.prototype.sum = function () {
var result = 0;
this.forEach(function (o) { result += Number(o); });
return result;
};
var sum = ['100','300','400','60','40'].sum();
Javascript は数字を文字列として扱い、期待どおりに追加するのではなく、それらを連結しています。
parseInt
追加する前に整数に変換するために使用します。
var nums = ['100','300','400','60', 40];
var num = 0;
for(var i=1; i < nums.length; i++){
num += parseInt(nums[i], 10);
alert(num);
}
2 番目のパラメーターはparseInt
、基数 10 を使用するように指示します。
var nums = ['100','300','400','60','40'];
var num = 0;
for(var i=0; i < nums.length; i++){
num = parseInt(num) + parseInt(nums[i]);
}
これが私がやった方法です。他のコードとよく似ていますが、書き方が異なります。for ループの最初の i 値を 0 で開始する必要があります。
var i, sum = 0, nums = ['100','300','400','60','40'];
for (i = 0; i < nums.length; i++) {
sum += +nums[i];
}
alet(sum);
var
ループ内でステートメントを使用しないでください。また、parseInt
他の回答で使用される関数は常に数値を整数に変換するため、浮動小数点数では機能しません。数字の前に を付けると、数字+
に変換されます。
ブラウザー用に開発する場合、このreduce
関数を使用すると、古いブラウザーで問題が発生する可能性があります (そのためのポリフィルが見つからない場合)。