函数循环给定一个数字而不是一个数组
说我有一个数字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数组