编写一个javascript来查找使用for循环的系列之和

时间:2014-01-09 12:11:37

标签: javascript

我在编写javascript以查找前10个自然数的总和时遇到问题。我用while函数编写了代码,它运行良好:

var total = 0, count = 1;
while (count <= 10) {
    total += count;
    count += 1;
}
console.log(total);

我现在想知道如果可能的话,如何使用for循环来完成此操作。有什么帮助吗?

3 个答案:

答案 0 :(得分:3)

var total = 0;

for (var i = 1; i <=10; i ++){
     total += i;
}
console.log(total);

答案 1 :(得分:1)

在这种情况下,循环的替代方法是 - reduce

数组有reduce方法,其用法如下:

[1,2,3,4].reduce(function(total, number) {
  return total + number;
}, 0);

传入一个函数,接受数组中的总数和当前数,并返回它们的总和。

最后的零是起始值。

数组也有forEach方法,您可以使用它来迭代遍历数组:

var sum = 0;
[1,2,3,4].forEach(function(number) {
  sum += number;
});

PS:某些语言中的reduce有一个别名 - fold

答案 2 :(得分:1)

另一种基于lukas.pukenis answer

的变体
Array.apply(null,Array(10)) // [undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined]
     .map(function(_, index){
              return index+1;
          }) // [1,2,3,4,5,6,7,8,9,10]
     .reduce(function(total,curr){
                 return total+curr
             }); // 55