2010-07-21 10 views
49

Załóżmy mamy następującą JavaScript Object:Get pierwszy klucz z javascript obiekt

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

Czy istnieje funkcja, która zwraca mi wartość pierwszego klucza w obiekcie? (Nie znam nazwy klucza, chcę tylko uzyskać wartość pierwszego klucza).

Odpowiedz

141

W JavaScript można wykonać następujące czynności:

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

Działa również na przeglądarkach. –

+3

To jest chory kawałek kodu. Spodziewałem się, że będę musiał zagracać wszystko głupim kluczem w dykcie: – Jake

+2

Znacznie czystsze niż przyjęta odpowiedź, dzięki! –

26

Nie ma czegoś takiego jak "pierwszy" klucz w hashu (JavaScript nazywa je obiektami). Są zasadniczo nieuporządkowane. Czy masz na myśli po prostu wybrać dowolny pojedynczy klucz:

for (var k in ahash) { 
    break 
} 

// k is a key in ahash. 
+6

powinien sprawdzić, czy obj.hasOwnProperty (prop) również dodać – vsync

+0

i jak uzyskać resztę innych? – Santosh

+0

Myślę, że nie jest to zalecane rozwiązanie. Wykorzystuje to złą funkcję o nazwie "zmienne podnoszenie". ES6 zalecił, aby nie używać "var" w pętli for –

9

Spróbuj tego:

for (var firstKey in ahash) break; 

alert(firstKey); // 'one' 
2

można umieścić elementy do tablicy i hash jednocześnie. Aby uzyskać wartości według ich kolejności, można użyć tablicy, aby uzyskać wartości według ich kolejności, a wartość mieszania może zostać użyta do uzyskania wartości po ich kluczu. po prostu usuwaj i dodawaj elementy.

5

Z underscore.js, można zrobić

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

on powróci [1,2,3]

+1

Prawdziwe dla lodash :) – migg

+0

istnieje również metoda 'findKey' która zwraca klucz (zamiast wartości) –

10

jeśli zdecyduj się na użycie Underscore.js, lepiej zadzwoń:

_.values(ahash)[0] 

, aby uzyskać wartość, lub

_.keys(ahash)[0] 

, aby uzyskać klucz.

Powiązane problemy