http://jsperf.com/jquery-each-vs-for-loop/108
for (var b = a[0], len = a.length; len; b = a[--len]) {
newArray.push(
b
);
}
和
for (var i = 0, len = a.length; i < len; i++) {
newArray.push(
a[i]
);
}
- 根据 jsref,它说第一个更快。为什么?
- 谁能给我解释一下 for 循环与传统方式相比有何作用?
最佳答案
您的第一个示例只是做了一些非常不同的事情。检查一下:
var a = [1,2,3,4],
newArray = [];
for (var b = a[0], len = a.length; len; b = a[--len]) {
newArray.push(b);
}
> newArray
[1, 4, 3, 2]
您的第二个示例产生预期的 [1, 2, 3, 4]
。
如果您需要了解算法,将 for
符号转换为 while 循环并扩展递减和递增运算符可能会更容易:
/* first example */
var b = a[0],
len = a.length;
while (len) {
newArray.push(b);
len = len-1;
b = a[len];
}
/* second example */
var i = 0,
len = a.length;
while (i < len) {
newArray.push( a[i] );
i = i+1;
}
关于javascript - 谁能解释一下这两个循环之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14463808/