2010-07-21 118 views
49

假設我們有以下的JavaScript對象第一個鍵:獲取從JavaScript對象

ahash = {"one": [1,2,3], "two": [4,5,6]} 

有什麼功能,它返回我的對象​​第一個關鍵的價值? (我不知道密鑰名稱,我只想獲得第一個密鑰的價值)。

回答

141

在Javascript中,你可以做到以下幾點:

Object.keys(ahash)[0]; 
+8

也可以在瀏覽器上工作 – 2012-07-10 20:08:42

+3

這是一段糟糕的代碼。我期待着用一個愚蠢的關鍵字填滿所有東西: – Jake 2012-07-29 05:10:44

+2

比接受的答案要乾淨得多,謝謝! – 2012-11-03 22:37:21

26

有沒有這樣的事情作爲一個哈希中的「第一」鍵(JavaScript稱它們爲對象)。它們從根本上無序。你的意思是隻要選擇任何一個鍵:

for (var k in ahash) { 
    break 
} 

// k is a key in ahash. 
+6

應該檢查obj.hasOwnProperty(道具)是否也會加 – vsync 2012-12-14 06:40:21

+0

以及如何獲得其他的其他東西? – Santosh 2017-06-03 10:21:07

+0

我認爲這不是建議的解決方案。這使用名爲「變量提升」的不良特性。而且ES6建議不要在循環中使用'var' – 2017-08-01 03:53:06

9

試試這個:

for (var firstKey in ahash) break; 

alert(firstKey); // 'one' 
2

你可以把你的元素放到一個數組和散列在同一時間。

var value = [1,2,3]; 
ahash = {"one": value}; 
array.push(value); 

陣列可以使用它們的順序和散列可以使用他們的關鍵獲得值獲得的值。當你刪除並添加元素時,只需要保持完整。

5

隨着Underscore.js,你可以做

_.find({"one": [1,2,3], "two": [4,5,6]}) 

它會返回[1,2,3]

+1

也適用於lodash :) – migg 2016-06-06 09:31:02

+0

還有一個'findKey'方法它返回鍵(而不是值) – 2017-07-20 17:04:49

10

如果您決定使用Underscore.js你最好做

_.values(ahash)[0] 

得到價值,或者

_.keys(ahash)[0] 

得到密鑰。