首页 > 解决方案 > 使用 for 循环获取数组中过滤元素的总和

问题描述

我正在自学,我仍然是 javascript 的初学者。通过做一些练习,我遇到了这个问题,它要求我获取数组中为正且小于 1001 的元素的总和。所以我编写了这个函数,但它返回 0,而不是所需的结果。我不知道我做错了什么,我会很感激一些反馈

function sumSmallNumbers(n) {
  let smallNumbers = [];
  var sum2 = 0;
  for (let i = 0; i < n.length; i++) {
    if (n[i] > 0 && n[i] < 1001) {
      smallNumbers.push(n[i]);

      function sumFiltered(smallNumbers) {
        for (let j = 0; j < smallNumbers.length; j++) {
          let x = smallNumbers[i];

          sum2 = sum2 + x;
        }
      }
    }
  }
  return sum2;
}

标签: javascriptfor-loop

解决方案


您正在做的是首先制作一个满足条件的数字数组,然后将它们相加。如果直接计算总和,则只需一个循环即可。

这是它的样子。

function sumSmallNumbers(n){
let sum = 0;
    for(let i=0; i<n.length; i++){
    if(n[i] > 0 && n[i] < 1001){
        sum += n[i];
    }
  }
  return sum;
}

const arr = [1,2,3,66666,234];
let sum = sumSmallNumbers(arr);
console.log(sum)

在您能够理解这一点之后,请查看 JavaScript 的数组方法,例如forEach,mapfilter


推荐阅读