【发布时间】:2010-09-19 13:28:17
【问题描述】:
你认为 for...in 和 for 循环有很大的不同吗?您更喜欢使用哪种“for”,为什么?
假设我们有一个关联数组:
var myArray = [{'key': 'value'}, {'key': 'value1'}];
所以我们可以迭代:
for (var i = 0; i < myArray.length; i++)
还有:
for (var i in myArray)
我看不出有什么大的不同。是否存在性能问题?
【问题讨论】:
-
请注意,as of JS 1.6 也有:
myArray.forEach(callback[, thisarg])。 -
@Benji array.forEach 实际上在 ES5 中。
-
在 for-in 循环中,您需要一个如下所示的条件:
if(myArray.hasOwnProperty(i)){true} -
['foo', 'bar', 'baz'].forEach(function(element, index, array){ console.log(element, index, array); });几乎可以在任何地方使用,除了在 IE8 中,它是迄今为止最优雅的语法 -
ECMAScript 6中也有
for...of声明,例如:for (let i of myArray) console.log(i);
标签: javascript