2010-07-21 20 views
49

Supongamos que tenemos el siguiente objeto javascript:primera clave de Javascript objeto

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

¿Hay alguna función, lo que me devuelve el valor de la primera clave en el objeto? (No sé el nombre de la clave, solo quiero obtener el valor de la primera clave).

Respuesta

141

en javascript que puede hacer lo siguiente:

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

Funciona también en los navegadores –

+3

Esta es una pieza defectuosa de código. Esperaba tener que desordenar todo con una tonta para clave en dict: – Jake

+2

Mucho más limpio que la respuesta aceptada, ¡gracias! –

26

No existe la "primera" clave en un hash (Javascript los llama objetos). Ellos están fundamentalmente desordenados. Qué quiere decir acaba de elegir cualquier tecla sola:

for (var k in ahash) { 
    break 
} 

// k is a key in ahash. 
+6

debería comprobar si obj.hasOwnProperty (prop) también agregaría – vsync

+0

y cómo obtener el resto de los demás? – Santosh

+0

Creo que no es una solución recomendada. Esto usa una característica mala llamada 'elevación variable'. Y ES6 ha recomendado no usar 'var' en el ciclo –

9

Prueba esto:

for (var firstKey in ahash) break; 

alert(firstKey); // 'one' 
2

usted puede poner sus elementos en una matriz y de hash al mismo tiempo.

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

array se pueden usar para obtener valores por orden y el hash se puede usar para obtener valores por su clave. solo sé cargada cuando elimines y agregues elementos.

5

Con Underscore.js, se podría hacer

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

Se volverá [1,2,3]

+1

También es cierto para lodash :) – migg

+0

también hay un método 'findKey' que devuelve la clave (en lugar del valor) –

10

Si Decide utilizar Underscore.js es mejor que lo haga

_.values(ahash)[0] 

para obtener valor, o

_.keys(ahash)[0] 

para obtener la clave.

Cuestiones relacionadas