javascript - 谁能解释一下这两个循环之间的区别?

标签 javascript

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]
  );
}
  1. 根据 jsref,它说第一个更快。为什么?
  2. 谁能给我解释一下 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/

相关文章:

javascript - react 测试库 : Unable to Change Material UI DatePicker Input Value

javascript - jquery 2 div child 比较

javascript - 解析网站并使用 'PHP Simple HTML DOM Parser' 保存特定的 DIV

javascript - ReactJS - 渲染正确组件的问题

javascript - Gulp 4 - CSS 缩小和重命名

c# - 上一个按钮显示验证

javascript - 找不到模块 : Can't resolve 'moment' in 'node_modules\react-moment\dist' in reactjs

javascript - 是否可以在页面加载后立即强制下载文件(如 pdf)

javascript - 将 javascript 文件链接到 WordPress 子主题

javascript - 向用户显示 RGB 值