javascript - 返回数组中偶数的总和

标签 javascript arrays for-loop if-statement ecmascript-6

我正在寻找的解决方案:我的函数需要返回数组中所有偶数的总和。预期答案是 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/

相关文章:

javascript - 简单的 jQuery 隐藏/显示在 IE 中不起作用

javascript - jQuery 点击功能不起作用

batch-file - 通过类似开关的参数循环的批处理文件?

c - 遍历c中的字符串数组

JavaScript HTML Google Maps API 地理编码服务问题

java - 在 for 循环中更改 `double` 输出

javascript - jQuery .each() 仅打印外部 Json 中的最后一项

javascript - 如何在 jQuery 中获取窗口选择中的单词数

python - 在 NumPy 数组中记录迄今为止的最小值

C - 警告(传递 2 个参数 ..)