我正在寻找的解决方案:我的函数需要返回数组中所有偶数的总和。预期答案是 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));
我将函数更改为推送到一个求和数组并返回求和数组,发现它返回 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 对我没有帮助。
最佳答案
与
if (i % 2 === 0){
您正在检查正在迭代的索引 是否是偶数。因此,您最终将把 numStr[0]
、numStr[2]
等相加。改为检查该索引处的值:
if (numStr[i] % 2 === 0) {
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 (numStr[i] % 2 === 0) {
sum = sum + numStr[i];
}
}
return sum;
}
console.log(sumEvens(numStr));
关于javascript - 返回数组中偶数的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56086146/