函数循环给定一个数字而不是一个数组

说我有一个数字18,而不是一个数组,手中。

在JS中创build一个函数循环的最好方法是给定数字X而不是X元素数组?

我可以做这个:

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

但如果我有3号

我可以

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

但我希望该循环function,而不是

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

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

  var limit = n; while (--limit) { // note: 0 is falsy (function(){ })(limit); } 

或者如果你真的想使用一个数组结构:

 new Array(limit).fill(0).forEach(function(){...}); 

会做。

您可能对“每日神话”感兴趣:function程序员不要使用循环

根据这个问题 ,你可以用一个线性序列“function上”迭代,比较容易使用:

 Array.apply(null, Array(number)).map(function () {}).forEach(...) 

不知道这有什么优势,而不是一个规则for循环与索引,虽然这是一个巧妙的把戏。

如果你有一个数字,你想创build一个循环,那么你可以在for循环中使用限制条件中的数字。

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

编辑1:只能在数组上使用foreach ,在这种情况下,既然你已经有一个数字了,你可以创build一个长度的数组,然后使用foreach。

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

foo.foreach()

另外一个select是

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]

此线程中有更多可用选项创build一个包含1 … N的JavaScript数组