我在编写javascript以查找前10个自然数的总和时遇到问题。我用while函数编写了代码,它运行良好:
var total = 0, count = 1;
while (count <= 10) {
total += count;
count += 1;
}
console.log(total);
我现在想知道如果可能的话,如何使用for循环来完成此操作。有什么帮助吗?
答案 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