JavaScript通过迭代添加数字

时间:2016-09-03 05:22:09

标签: javascript arrays for-loop iteration addition

我试图找到数组中所有元素的总和,但它不起作用。



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

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

3 个答案:

答案 0 :(得分:0)

使用Array.reduce函数计算总和

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

JSFIDDLE

答案 1 :(得分:0)

由于nums.length4,因此索引从0运行到3i <= 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);

答案 2 :(得分:0)

这里的第一个问题,你num是未定义的,第二个是数组是0索引因此你的循环中的i =< nums.length将返回未定义的最后一次迭代

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

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