循环数组的最佳方法

时间:2011-05-10 13:11:40

标签: programming-languages

var data = [];

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

for (i = 0, i < data.length; i++) {

What is the difference between these two way of forming an loopwhich is sited as best among them.

Calling the first one is cheaper than the second one. Is it true?

3 个答案:

答案 0 :(得分:1)

在第一种情况下,您将拥有另外的len变量hold data.length。如果在for循环中再次需要data.length的值,则可以执行此操作(例如,如果检索它的计算成本很高)。

但请注意,它与

相同
len = data.length;
for (i = 0; i < len; i++) {

我更喜欢它的可读性。

答案 1 :(得分:1)

这在很大程度上取决于语言。大多数编译器会将长度视为循环不变量并将其移出自身。这种细节并不重要,循环中真正重要的是拥有缓存友好的循环,即以缓存空间和时间局部性最大的方式记录您的数据。

答案 2 :(得分:1)

是的,它是 - 根据:

http://blogs.oracle.com/greimer/entry/best_way_to_code_a

注意:如果您不相信,可以轻松构建测试。