2015-04-03 83 views
0

我有一個只有一個屬性(自己的屬性)的對象。訪問該房產價值的最簡單方法是什麼?訪問對象的單個屬性最簡單的方法是什麼?

喜歡的東西:

value = obj[<firstProperty>]; 

我知道我可以寫一個函數或一個循環做到這一點,但我問,如果有一個較短的方式。

for (p in obj) { 
    if (obj.hasOwnProperty(p)) { 
     value = obj[p]; 
    } 
} 

我不會知道房地產的名稱。我只知道直接在對象上只有一個屬性。

+1

修正數據的設計。具有一個未知屬性名稱的對象通常是沿線某處設計選擇不佳的標誌。具有未知屬性名稱的單個數據不屬於對象。如果你只想存儲一個未知的鍵和值,那麼只需把它們放在一個數組''「unknownKey」,value]'中,你就可以直接訪問每一個。 – jfriend00 2015-04-03 21:27:44

+0

我敢打賭你。向我們展示整體環境,如果您所描述的是設計它的最佳方式,我會非常驚訝。 – jfriend00 2015-04-03 21:29:44

+0

什麼讓這個案件例外? – undefined 2015-04-03 21:29:47

回答

4

var value = obj[ Object.keys(obj)[0] ]; 

得到鍵與Object.keys[0]

+2

爲什麼不''[0]'? – SLaks 2015-04-03 21:28:01

+0

@SLaks - 當然,爲什麼不,我喜歡'shift()',這有什麼關係嗎? – adeneo 2015-04-03 21:28:31

+1

因爲變異數組較慢 – SLaks 2015-04-03 21:29:16

2

第一個(也是唯一一個)鍵這應該工作。

var keys = Object.keys(obj); 
var value = obj[keys[0]]; 

我們可以把它縮短

var value = obj[Object.keys(obj)[0]]; 
+2

@ChrisGciso - 不,第二! – adeneo 2015-04-03 21:55:04

+0

@adeneo,哈哈哈:)其實我發佈這個時沒有看到你的答案。但它看起來像你是第一個:) – Sohel 2015-04-03 21:56:58

+0

這很好,你走了,這對我來說並不重要,哪一個被接受,這似乎是來自OP的一個奇怪的評論 – adeneo 2015-04-03 21:58:10