【发布时间】:2016-09-03 05:22:09
【问题描述】:
我正在尝试查找数组中所有元素的总和,但它不起作用。
var nums = [10, 20, 30, 40];
var num;
for (var i = 0; i <= nums.length; i++) {
num += parseInt(nums[i]);
}
alert(num);
【问题讨论】:
标签: 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);
【问题讨论】:
标签: javascript arrays for-loop iteration addition
由于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);
【讨论】:
使用Array.reduce函数计算总和
var nums = [10,20,30,40];
var num=nums.reduce(function(previousValue, currentValue, currentIndex, array) {
return previousValue + currentValue;
});
alert(num);
【讨论】:
这里的第一个问题,您 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);
【讨论】: