我应该为JavaScript数组和对象使用哪个循环?
这个问题在这里已经有了答案:
我为你做了一个jsperf:
http://jsperf.com/for-vs-for-in43
基本上,它正在测试性能,当使用for(var i in array)
时可以看到巨大的性能下降。
话虽这么说,你souldn't放下for
对for in
。
我应该甩for
你不应该。 for..in
在用于循环数组时并不关心索引,它也会列出附加到该对象的属性。 坚持for
对数组和for..in
的对象。
摘自MDN的摘录:
for..in
不应该用于迭代索引顺序非常重要的数组... ...不能保证for..in
将以任何特定顺序返回索引,并且它将返回所有可枚举的属性...
至于性能,我不会担心,因为for..in
循环索引数组显然不被推荐。
不能用于(i = 0; ...)用于对象属性,但是我可以在数组中使用for(var in ...),因为数组也是对象。
您应该使用for
是其他的答案已经状态。
但是您可以使用Object.keys(yourObject)
将对象的键列为数组,然后在该数组上使用for循环。
var keys = Object.keys(myObject);
for(var i = 0, key; key = keys[i]; i++) {
//...
}
链接地址: http://www.djcxy.com/p/70021.html
上一篇: Which for loop should I use for JavaScript arrays and objects?
下一篇: JavaScript For