在JavaScript中循环数组的最快方法是什么?

我从书本中学到,你应该像这样写循环:

for(var i=0, len=arr.length; i < len; i++){
    // blah blah
}

所以arr.length将不会每次计算。

其他人说编译器会对此做一些优化,所以你可以写:

for(var i=0; i < arr.length; i++){
    // blah blah
}

我只想知道哪个是实践中最好的方法?


用大多数现代浏览器执行此测试后...

http://jsben.ch/#/y3SpC

目前 ,循环的最快形式(在我看来,语法最明显)。

一个带有长度缓存的循环标准

for (var i = 0, len = myArray.length; i < len; i++) {

}

我会说这绝对是一个我赞扬JavaScript引擎开发人员的例子。 运行时间应该为了清晰而非巧妙而进行优化。


循环访问javascript数组的绝对最快的方法是:

var len = arr.length;
while (len--) {
    // blah blah
}

请参阅http://blogs.oracle.com/greimer/entry/best_way_to_code_a以进行全面比较


如果订单不重要,我更喜欢这种风格:

for(var i = array.length; i--; )

它缓存了长度,并且写得更短。 但它会以相反的顺序遍历数组。

链接地址: http://www.djcxy.com/p/4197.html

上一篇: What's the fastest way to loop through an array in JavaScript?

下一篇: how can I git stash a specific file?