这是常规for循环:
for (var i = 0; i < n; i++) { ... }
它用于迭代数组,但也只是重复一些进程n次.
我使用上面提到的形式,但它击退了我.标头var i = 0;我< N;我很丑陋,每次使用时都必须按字面意思重写. 我正在写这个问题,因为我提出了一个替代方案:
repeat(n,function(i) { ... });
这里我们使用带有两个参数的repeat函数:
1.迭代次数,
2.一个身体代表正在重复的过程的功能.
“代码隐藏”就像这样:
function repeat(n,f) { for (var i = 0; i < n; i++) { f(i); } }
(我知道在流程的范围链中有两个额外的“级别”的性能影响)
顺便说一句,对于那些使用jQuery库的人来说,上面提到的功能可以通过$.each方法实现,如下所示:
$.each(Array(n),function(i) { ... });
所以你怎么看?这个重复函数是native for循环的有效替代吗?这个替代方案的缺点是什么(性能除外 – 我知道这个)?
本机:
for (var i = 0; i < 10; i++) { // do stuff }
替代方案:
repeat(10,function(i) { // do stuff });
解决方法
这是一个有趣的想法,但如果你不喜欢循环的语法,你总是可以做一个不同类型的循环:
var i = arr.length; while (i--) { // do stuff }
反向while循环通常也比for循环快.