2011-09-25 72 views
3

可能重複:
Access the first property of an object如何獲取對象的第一個成員在JavaScript

我有一個JavaScript對象是這樣的:

var list = { 
    item1: "a", 
    item2: "b", 
    item3: "c", 
    item4: "d" 
}; 

在JS使用反射,我可以說list [「item1」]以編程方式獲取或設置每個成員,但我不想依賴t的名字他的成員(對象可能會擴展)。所以我想獲得這個對象的第一個成員

如果我寫下面的代碼,它返回undefined。任何人都知道如何做到這一點?

var first = list[0]; // this returns undefined 
+0

http://stackoverflow.com/questions/2342371/jquery-loop-on-json-data-using-each – Jack

+0

但是如果你改變了初始化該對象的代碼會怎麼樣。當然最好是通過名字來引用它,或者使用一個數組? – Bojangles

+0

@Jack:我不是在尋找一個循環 –

回答

38
for(var key in obj) break; 
// "key" is the first key here 
+0

天才!這正是我想要的:) –

9
var list = { 
    item1: "a", 
    item2: "b", 
    item3: "c", 
    item4: "d" 
}; 

相當於

var list = { 
    item2: "b", 
    item1: "a", 
    item3: "c", 
    item4: "d" 
}; 

所以沒有第一要素。 如果你想要第一個元素,你應該使用數組。

+0

這是對的,但是stereofrog的答案給了我我想要的東西!我不會說「沒有第一個」,我會說「對象成員沒有排序或索引」。任何第一個來的都是第一個。 –

+0

@valipour:那麼爲什麼你的問題說*「我想獲得這個對象的第一個成員」*如果你不在乎你是否按照你的順序定義了第一個項目?現在,聽起來您實際上只需要一個成員,而不管您定義的順序如何。 – user113716

2

儘管JavaScript的某些實現使用列表來創建對象,但它們應該是無序的映射。

所以沒有第一個。

+2

這是正確的,但stereofrog的答案給了我我想要的!我不會說「沒有第一個」,我會說「對象成員沒有排序或索引」。任何第一個來的都是第一個。 –

相關問題