我试图找到在自己的范围内运行 for 循环的最快方法。我比较的三种方法是:
var a = "t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t".split();
// lodash .each -> 1,294,971 ops/sec
lodash.each(a, function(item) { cb(item); });
// native .forEach -> 398,167 ops/sec
a.forEach(function(item) { cb(item); });
// native for -> 1,140,382 ops/sec
var lambda = function(item) { cb(item); };
for (var ix = 0, len = a.length; ix < len; ix++) {
lambda(a[ix]);
}
这是在 OS X 上的 Chrome 29 上。你可以在这里自己运行测试:
lodash 的.each
速度几乎是 native 的两倍.forEach
?而且,它怎么比平原快for
?巫术?黑魔法?