当涉及到这些$.each循环时,什么更快/更高效/更好
What is faster/more efficient/better when it comes to these $.each loops?
我有一个Javascript对象,它看起来像这样:
var a = {
b: [1,2,3,4,5,6,7,8,9],
c: [10,11,12,13,14,15]
}
要循环遍历两个数组(我想循环遍历每个值!)我使用$.each
,但我可以这样做:
// Option A:
$.each(a, function(i, d){
$.each(d, function(j, e){
console.log(e);
}
});
或者这个
// Option B:
$.each(a.b, function(k, f){
console.log(f)
})
$.each(a.c, function(l, g){
console.log(g)
})
两者产生的输出完全相同,但这两个版本中哪一个更快/更高效/更好?
有什么不同吗?
还是有更快速/更高效/更好的方法(没有$.each
)?
最有效的方法是使用简单的本地for
循环。完全避免jQuery。
使用某种each
总是比for循环慢,这是不正确的。SM和V8可以做很好的内联只要你不破坏他们的利益,每个利用这一事实的自定义实现都可以运行得同样快作为for循环。
话虽如此,jQuery$.each
并没有利用这一事实,而且速度很慢。避免出现对性能敏感的情况。
至于你的问题,我预计第二个问题在JIT中会稍微快一点,因为它避免了反射,并使用了静态属性访问,而每个现代引擎都利用了这一点。$。每一个都很慢,所以差异在这里并不明显。
http://jsperf.com/129031290419034
没有什么能比得上:
var i=0, arr=a.b, len=arr.length;
for(; i<len; i++ ) { console.log(arr[i]) } ;
顺便说一句,如果您有疑问,请询问jsperf
这里有一个测试显示增长了5倍/10倍:
http://jsperf.com/for-vs-foreach/9
如果您真正关心的是速度,那么请使用javascript自己的for循环。对于你的答案,我认为选项b会更快
相关文章:
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 什么更好?使用iframe或jQuery之类的东西在外部网站中加载HTML文件
- 有什么比document.execCommand更好的东西吗
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 什么对性能更好:每个元素的事件或一个具有委派的事件
- 什么时候拥有更多或更少的html元素更好
- 拥有独特的用户房间的更好方法是什么
- 什么是上下文中静态类型javascript的示例,以更好地进行单元测试
- 组织对象原型的更好方法是什么
- 在HTML中使用JS的更好方法是什么?函数或选择器
- 编写此 Javascript 悬停函数的更好方法是什么?
- 设置mongo的更好方法是什么
- PHP-语言切换-MVC框架-会话还是基于Javascript(i18next库)?什么更好
- 有什么更好的方法来安排这些多个if-else条件
- 有什么更好的方法可以实现jQuery setInterval
- jQuery,很多孩子.有什么更好的方法来做这件事?
- 在joomla中使用什么更好,模块或条件语句来检查页面
- 有什么更好的方法来创建适用于多行的下拉列表