2013-05-29 280 views
1

我需要獲取另一個對象內部的每個對象的名稱。這一點應在for迴路來完成,如:獲取對象的名稱

for (var obj1 in obj2){ 
    // use obj1.getName 
} 

如果這是不可能的(但它會更好,如果是的),我可以在obj2使用類似name屬性爲每個對象。該屬性將存儲對象名稱。

基本上我不知道爲什麼obj1undefined當程序經過for循環。

編輯:問題不確定是螢火斷點for標題行。它錯過了一些代碼,並告訴我不確定

+0

能與你的聲明發表[的jsfiddle(http://jsfiddle.net)你目的?或者可能將其發佈在問題 –

+1

可能是你錯過了某些東西 –

+0

如果'obj1'確實沒有定義,那麼這將是一個非常奇怪的行爲,因爲for循環只是循環實際存在的屬性。還是隻是'obj1.getName'是未定義的? – basilikum

回答

1

當一個for..in循環一樣,迭代,你會看到obj1被分配給序列的每個鍵,這意味着你可以得到價值obj2[obj1]。這就是它的全部,它不能簡單。

1

當你要選擇的對象的動態密鑰使用數組符號,像這樣:

for (var obj1 in obj2){ 
    obj2[obj1] 
}