给定数字而不是数组的函数循环

Ale*_*lls 14 javascript node.js

假设我手上有一个数字 18,而不是一个数组。

给定数字 X 而不是 X 元素数组,在 JS 中创建功能循环的最佳方法是什么?

我可以做这个:

[1,2,3].forEach(function(){

));
Run Code Online (Sandbox Code Playgroud)

但如果我有数字 3

我可以

for(var i = 0; i < 3; i++){

}
Run Code Online (Sandbox Code Playgroud)

但我希望该循环能够正常工作

Raj*_*ddy 13

如果您有一个数字并且想要创建一个循环,那么您可以在 for 循环中的限制条件中使用该数字。

for(var i = 0; i < number; i++)

编辑1:您只能在数组上使用foreach,在这种情况下,因为您已经有一个数字,您可以创建一个该长度的数组,然后在其上使用 foreach 。

var foo = new Array(number).fill(0);

foo.foreach()

另一种选择是

var N = 18;

Array.apply(null, {length: N}).map(Number.call, Number)

结果 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]

此线程中提供了更多选项创建一个包含 1...N 的 JavaScript 数组

  • @AlexMills,意思是“forEach”样式调用? (2认同)
  • `Array.apply(null, Array(number)).map(function () {}).forEach(...)` 是您能得到的最接近的。 (2认同)

Rob*_*obG 9

我不明白你为什么要这样做。相当于:

[1,2,3].forEach(function(){ ... ));
Run Code Online (Sandbox Code Playgroud)

var limit = n;
while (--limit) {(  // Note: 0 is falsy
    function(){ ... }
)(limit);}
Run Code Online (Sandbox Code Playgroud)

或者,如果您确实想使用数组结构,则可以执行以下操作:

new Array(limit).fill(0).forEach(function(){...});
Run Code Online (Sandbox Code Playgroud)

您可能对今日神话:函数式程序员不使用循环感兴趣。