javascript - 需要帮助查找数组中所有数字的总和

标签 javascript arrays for-loop addition

我正在尝试查找 1000 以下的所有 3 或 5 的倍数。在获得所有数字后,我想将它们相加。

我能够弄清楚如何找到倍数并将它们添加到数组中,但无法弄清楚如何将它们添加在一起。

这是我的代码:

var add = [];
var count = 0;

if ( i % 3 == 0 || i %5 == 0) {
    for (var i = 1; i <= 1000; i ++) {
        add.push(i);
    }
};

function whole () {
    for(var i = 0 ; i <= add.length; i ++) {
        count = count + add[i];
    }
};

whole();

最佳答案

第一个循环永远不会发生,因为此时 iundefined(i%3 为 NaN)。

我认为你只需要将 forif 反转即可。

for (var i = 1; i <= 1000; i ++) {
  if ( i % 3 == 0 || i %5 == 0) {
    add.push(i);
  }
};

您需要返回 count 的断言不正确。该函数只是对全局计数起作用。

一种更干净、功能纯粹的方法来做到这一点:

function whole(i, count, max){
  if(i > max){
   return count;
 }
 if(i % 3 === 0 || i % 5 === 0){
   return whole(i + 1, count + i, max);
 }
 return whole(i + 1, count, max);
}

whole(0, 0, 1000);

关于javascript - 需要帮助查找数组中所有数字的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31084548/

相关文章:

c# - 如何避免 If/Then 语句检查其 "IF"

javascript - 选项卡,隐藏第一个选项卡上的上一个选项卡和最后一个选项卡上的下一个选项卡

javascript - 外部 JavaScript 和下拉菜单无法在浏览器中正确呈现

JavaScript 对象或数组?这是什么?

java - 如何将函数中表中的值复制到类中变量?

python - 如何获取 numpy 数组中给定项目的列索引和行索引(y 和 x)

javascript - Gulp.js : Reload altered php/html pages

JavaScript JSON 组合和数据 Anylish

c - 为什么这个 for 循环会被忽略?

java - for循环,除一