【发布时间】:2019-05-11 00:04:08
【问题描述】:
我正在寻找的解决方案:我的函数需要返回数组中所有偶数的总和。预期答案是 30。
我遇到的问题:它返回的答案是 25。
let numStr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sumEvens = (numStr) => {
let sum = 0;
for (let i = 0; i < numStr.length; i++) {
if (i % 2 === 0){
sum = sum + numStr[i];
}
}
return sum;
}
console.log(sumEvens(numStr));
我将函数更改为 push 到 sum 数组并返回 sum 数组以查找返回 25 的原因是因为它正在创建一个奇数数组而不是偶数数组。
let numStr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sumEvens = (numStr) => {
let sum = [ ];
for (let i = 0; i < numStr.length; i++) {
if (i % 2 === 0){
sum.push(numStr[i]);
}
}
return sum;
}
console.log(sumEvens(numStr));
我能够获得正确输出 30 的唯一方法是使我的 if 语句 if (i % 2 !== 0),但我知道这意味着只有在数组中的数字不是偶数时才添加。
我觉得我很接近,但错过了一件小事。其他 SO 帖子和 MDN 对我没有帮助。
【问题讨论】:
-
你的意思是对偶数求和还是用偶数index求和?
标签: javascript arrays for-loop if-statement ecmascript-6