2011-05-23 48 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