在jsperf冷却时,我得到了一个非常有趣但绝对合乎逻辑的结果。
http://jsperf.com/for-in-jquery-return-value-vs-jquery-each
在准备环境中,O
是jQuery返回200个DOM节点的值,而a
是一个空数组,
O.each(function() {
a[a.length] = $(this).text();
});
比这更慢"纯粹"段
for (i = 0; i < O.length; i++) {
a[a.length] = O[i].text();
}
(差异,请查看上面的链接)
考虑到我只是玩得开心,必须有更快的方法。 使用jQuery循环遍历DOM元素的最快方法是什么?
答案 0 :(得分:2)
进行了另一次测试,似乎是
http://jsperf.com/for-in-jquery-return-value-vs-jquery-each/2
for (i = 0; i < O.length; i++) {
a[a.length] = O[i].text(); // tested this, because this is the usual way i work with pushing item to array
}
甚至比 -
更快for (i = 0; i < O.length; i++) {
a.push($(O[i]).text());
}
我猜push
本身速度较慢或删除了额外的$(..)
,从而消除了一些开销。
修改强>