2016-09-03 8 views

ответ

0

Поскольку nums.length является 4, индексы запуска из 0 к 3. i <= nums.length должно быть i < nums.length. Последняя итерация выходит за пределы массива, поэтому она добавляет undefined, что приводит к NaN.

Вам также необходимо инициализировать num до 0.

И нет необходимости звонить 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 функции для вычисления суммы

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

JSFIDDLE

0

первый вопрос здесь, вы num неопределен, второй массивы 0 индексируется поэтому i =< nums.length в цикле будет возвращать неопределенное для своей последней итерации

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 –

 Смежные вопросы

  • Нет связанных вопросов^_^