我非常喜欢在nodeLists上使用forEach方法,如下所示:
var nodes = document.querySelectorAll(".foo");
[].forEach.call(nodes, function (item) {
//do stuff with item
});
我很想知道,这样做的时间是否比常规方式更长? e.g。
for(var i=0;i<nodes.length;i++){
//do stuff with nodes[i];
}
答案 0 :(得分:7)
这是一个nice performance comparison。根据它Array.forEach
比本地for
循环慢。
答案 1 :(得分:4)
我知道它是一个老帖子,但是使用forEach方法也可以通过窃取Array原型来完成。
NodeList.prototype.forEach = Array.prototype.forEach;
答案 2 :(得分:1)
这取决于浏览器。并且不要忘记在Firefox 4上最快的while()Here's a comparison。
另请注意,如果您支持不支持forEach的旧版浏览器,则需要添加implement a polyfill所需的时间。