可能重复:
What is the best way to do loops in JavaScript
What’s the best way to loop through a set of elements in JavaScript?
有什么想法吗?
答案 0 :(得分:15)
答案 1 :(得分:3)
一个好的老式for
循环出了什么问题?
for( var i = 0; i < list.length; i++ ) {
// do something with list[i]
}
for...in
和for...each...in
的语义往往会让人感到困惑并导致意外结果。
答案 2 :(得分:0)
CMS的链接应该向您展示他们都很快的小数据集,我唯一建议的是你避免使用for (a in b)
,因为它比任何其他循环结构具有更高的内存开销,并且可能由于其“有趣”的语义,它会慢得多。
Anyhoo,除了for(in)
任何真正的JS应该花费相当多的时间来实际工作而不是处理循环本身,所以循环成本的微小变化不应该太多重要的。
答案 3 :(得分:0)
最近在Greg Reimer's Weblog中介绍了这一点。
答案很简单:
for (var i=0, node; node = hColl[i++];) {
// do something with node
}
答案 4 :(得分:0)
正如其他地方所解答的那样(为什么这个线程存在?):反过来:
var i = foo.length; while (i--) { /* do something with foo[i] */ }
如果你可以处理以下警告,那么..是最快的循环:
逆序并不总是合适
有点难以阅读
它为
它仅比较小的脚印和更易读的缓存长度for
循环
答案 5 :(得分:0)
据说对象更快......例如:
var array = {"0": "foo", "1": "bar"}
for(var i in array){
var val = array[i];
// do something
}