JavaScript for 循环替代 : repeat(n, function(i) { ... });

标签 javascript jquery loops

这是常规的 for 循环:

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

它用于遍历数组,但也只是重复一些过程n次。

我使用上面提到的形式,但它让我反感。标题 var i = 0; i < n; i++非常丑陋,每次使用时都必须逐字重写。

我写这个问题是因为我想出了一个替代方案:

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) { ... });  

那你怎么看?这是repeat吗函数是 native for 循环的有效替代方法?这种替代方案有哪些缺点(除了性能 - 我知道这一点)?

原生:

for (var i = 0; i < 10; i++) {
    // do stuff
}

备选方案:

repeat(10, function(i) {
    // do stuff
});

最佳答案

你说你想要一场革命......好吧,你知道:ruby 就在(?)之前做到了

Number.prototype.times = function(func) { 
    for(var i = 0; i < Number(this); i++) {
        func(i); 
    }
}

表示

(50).times(function(i) {
    console.log(i)
})

反正别跟C打了,你老是输:-P

关于JavaScript for 循环替代 : repeat(n, function(i) { ... });,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4929113/

相关文章:

javascript - D3-Tile 并非所有 Tile 都加载

javascript - jQuery 从列表结构构建面包屑导航链接

jquery - Braintree Drop-in UI - 使用 AJAX 发送表单

javascript - 合并 JQuery 中的字段重置

python - 只检查循环语句一次

javascript - $.ajax 抛出奇怪的 "Uncaught TypeError: Illegal invocation"

javascript - 在 Angular 中从 URL 中解析参数

jquery - 如何比较 href 和 div id

javascript - 尝试创建自定义 jQuery 文本滚动条

c - 在 for 循环之外使用变量。