Sni*_*ave 0 javascript loops for-loop
如果认为循环JavaScript数组的最快方法是使用for-in循环,那会不会错?例如:
for (var index in items) {
...
}
Run Code Online (Sandbox Code Playgroud)
该for-in语句不应用于迭代数组或类数组元素.
此语句的目的是枚举对象属性.
它不应该用于类似数组的对象,因为:
要迭代数组,始终建议使用顺序循环.
推荐文章:
编辑:哦,我也忘了提到你的测试是完全偏向的,因为表达式new Array(10000)只是初始化一个Array对象10000作为length属性的值,数字索引属性甚至不存在,这就是为什么它似乎是最快的例如:
var a = new Array(10);
a.length; // 10
a.hasOwnProperty('0'); // false, the indexes don't even exist!
a.hasOwnProperty('1'); // false
//...
Run Code Online (Sandbox Code Playgroud)
尝试这个公平的测试,一个真正包含10000个元素的数组对象,你会感到惊讶.:)
| 归档时间: |
|
| 查看次数: |
428 次 |
| 最近记录: |