2016-09-03 3 views
0

配列のすべての要素の合計を求めようとしていますが、機能しません。 nums.length4あるのでJavaScript反復による数値の追加

var nums = [10, 20, 30, 40]; 
 
var num; 
 

 
for (var i = 0; i <= nums.length; i++) { 
 
    num += parseInt(nums[i]); 
 
} 
 
alert(num);

答えて

0

に計算します。 i <= nums.lengthi < nums.lengthである必要があります。最後の反復は配列の外側にアクセスしているので、undefinedが追加され、結果はNaNになります。

num0も初期化する必要があります。

配列に整数が含まれている場合、parseInt()を呼び出す必要はありません。ここ

var nums = [10, 20, 30, 40]; 
 
var num = 0; 
 

 
for (var i = 0; i < nums.length; i++) { 
 
    num += nums[i]; 
 
} 
 
alert(num);

0

使用Array.reduce機能は、インデックスが0から3に実行し、合計

var nums = [10,20,30,40]; 
var num=nums.reduce(function(previousValue, currentValue, currentIndex, array) { 
    return previousValue + currentValue; 
}); 
alert(num); 

JSFIDDLE

0

最初の問題は、あなたnumは未定義である、第二の配列は、あなたのループの中で、したがってi =< nums.length 0をインデックス化されているその最後の繰り返し

var nums = [10, 20, 30, 40]; 
 
var num = 0; 
 

 
for (var i = 0; i < nums.length; i++) { 
 
    num += parseInt(nums[i]); 
 
} 
 
alert(num);
のために未定義戻ります

+0

ありがとうMugiwara –

関連する問題