Šim*_*das 6 javascript jquery loops
这是常规for循环:
for (var i = 0; i < n; i++) { ... }
Run Code Online (Sandbox Code Playgroud)
它用于迭代数组,但也只是重复一些处理n时间.
我使用上面提到的形式,但它击退了我.标题var i = 0; i < n; i++很简单,每次使用时都必须按字面重写.
我正在写这个问题,因为我提出了一个替代方案:
repeat(n, function(i) { ... });
Run Code Online (Sandbox Code Playgroud)
这里我们使用
带有repeat两个参数的函数:
1.迭代次数,
2.一个函数,该函数代表正在重复的过程.
"代码隐藏"就像这样:
function repeat(n, f) {
for (var i = 0; i < n; i++) {
f(i);
}
}
Run Code Online (Sandbox Code Playgroud)
(我知道在流程的范围链中有两个额外的"级别"的性能影响)
顺便说一句,对于那些使用jQuery库的人来说,上面提到的功能可以通过如下$.each方法实现:
$.each(Array(n), function(i) { ... });
Run Code Online (Sandbox Code Playgroud)
所以你怎么看?此repeat函数是native for循环的有效替代吗?这个替代方案的缺点是什么(性能除外 - 我知道这个)?
本机:
for (var i = 0; i < 10; i++) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
替代方案:
repeat(10, function(i) {
// do stuff
});
Run Code Online (Sandbox Code Playgroud)
Gon*_*lde 10
你说你想要一场革命......嗯,你知道吗:ruby就在之前做过(?)
Number.prototype.times = function(func) {
for(var i = 0; i < Number(this); i++) {
func(i);
}
}
Run Code Online (Sandbox Code Playgroud)
手段
(50).times(function(i) {
console.log(i)
})
Run Code Online (Sandbox Code Playgroud)
无论如何,不要与C作斗争,你总会失败:-P
这是一个有趣的想法,但如果你不喜欢循环的语法,你总是可以做一个不同类型的循环:
var i = arr.length;
while (i--) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
反向while循环通常也比for循环快.
| 归档时间: |
|
| 查看次数: |
10769 次 |
| 最近记录: |