2011-05-23 45 views

回答

0

for-in语句枚举了一个对象的属性。在你的情况下,element是属性的名称,并且始终是一个字符串。

5

我想你误解了JavaScript for...in所做的一切。它不会迭代数组元素。它遍历对象属性。 JavaScript中的对象与其他语言中的字典或哈希类似,但是由字符串键入。特别是数组实现为具有从0N-1的整数属性的对象 - 但是,由于所有属性名称都是字符串,所以这些索引也是内置的。

现在我们来看一个与[0]有点不同的例子,因为这里的索引与值相符。我们来讨论[2]

因此,[2]是,如果我们忽略从Array继承的东西,几乎与{ "0": 2 }相同。

for..in将在财产迭代,这将拿起"0",而不是2

现在,如何遍历Array然后,你问?通常的做法是:

var arrayLen = array.length; 
for (var i = 0; i < arrayLen; i++) { 
    var el = array[i]; 
    // ... 
} 
+0

感谢解释的重复。这正是我所期待的。 – 2011-05-24 17:17:31