2010-07-21 10 views
49

Nehmen wir an, wir folgende Javascript-Objekt haben:Erhalten erste Schlüssel von JavaScript-Objekt

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

Gibt es eine Funktion, die mir Wert des ersten Schlüssel im Objekt zurückgibt? (Ich weiß nicht, Schlüsselnamen, ich will nur Wert von ersten Schlüsseln bekommen).

Antwort

141

In Javascript Sie Folgendes tun können:

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

Arbeiten auf Browser wie auch –

+3

Dies ist ein krankes Stück Code. Ich hatte erwartet, alles zu haben, um verunstalteten mit einem für Schlüssel in dict albern: – Jake

+2

viel sauberer als die akzeptierte Antwort, danke! –

26

Es gibt nicht so etwas wie den „ersten“ Schlüssel in einem Hash (Javascript nennt sie Objekte). Sie sind grundsätzlich ungeordnet. Meinen Sie wählen einfach jede einzelne Taste:

for (var k in ahash) { 
    break 
} 

// k is a key in ahash. 
+6

sollte überprüfen, ob obj.hasOwnProperty (prop) auch würde ich – vsync

+0

hinzufügen und wie man den Rest von anderen zu bekommen? – Santosh

+0

Ich denke, es ist nicht Lösung empfohlen. Dies verwendet ein schlechtes Merkmal namens "variables Heben". Und ES6 hat empfohlen, nicht ‚var‘ zu verwenden, in for-Schleife –

9

Try this:

for (var firstKey in ahash) break; 

alert(firstKey); // 'one' 
2

Sie Ihre Elemente in ein Array und Hash zur gleichen Zeit setzen können.

Array kann verwendet werden, um Werte nach ihrer Reihenfolge zu erhalten, und Hash könnte verwendet werden, um Werte anhand ihres Schlüssels zu erhalten. Seien Sie einfach trickreich, wenn Sie Elemente entfernen und hinzufügen.

5

Mit Underscore.js, könnten Sie

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

Es zurückkehren [1,2,3]

+1

Auch gilt für lodash :) – migg

+0

gibt es auch eine Methode 'findKey' welches den Schlüssel zurückgibt (anstelle des Wertes) –

10

Wenn Sie das tun Entscheiden Sie, Underscore.js zu verwenden, die Sie besser tun

_.values(ahash)[0] 

Wert zu erhalten, oder

_.keys(ahash)[0] 

Schlüssel zu erhalten.

Verwandte Themen