Si tengo un objeto JS como:
var foo = { 'bar' : 'baz' }
Si sé que foo
tiene esa estructura básica de clave / valor, pero no sé el nombre de la clave, ¿cuál es la forma más fácil de obtenerla? for ... in
? $.each()
? Espero que haya algo mejor ...
javascript
jquery
Sprugman
fuente
fuente
Respuestas:
Si desea obtener todas las claves, introdujo ECMAScript 5
Object.keys
. Esto solo es compatible con los navegadores más nuevos, pero la documentación de MDC proporciona una implementación alternativa (que también usafor...in
btw):Por supuesto, si desea ambos, clave y valor, entonces
for...in
es la única solución razonable.fuente
p
me da la clave pero ¿cómo obtengo el valor de la clave? Gracias.Usted iteraría dentro del objeto con un bucle for:
O
fuente
foo[i]
ser"_proto_"
?foo[i]
sii
es asísome string
?Puede acceder a cada clave individualmente sin iterar como en:
fuente
const [firstKey, ...rest] = Object.keys(obj);
Dado su objeto:
Para obtener
bar
, use:Para obtener
baz
, use:Asumiendo un solo objeto
fuente
Un trazador de líneas para usted:
fuente
Esta es la forma más simple y fácil. Así es como hacemos esto.
Ahora puede iterar sobre los objetos y acceder a valores como a continuación:
fuente
TypeError
si espera que una clave sea un número. Porque las llaves son siempre cadenas.Estaba teniendo el mismo problema y esto es lo que funcionó
fuente
var value = person[key];
? De esa manera, no tiene que conocer la clave del valor que desea obtener.Consulte MDN
fuente
No veo nada más que
for (var key in foo)
.fuente
La forma más fácil es usar Underscore.js:
Sí, necesitas una biblioteca adicional, ¡pero es muy fácil!
fuente
No hay otra manera que no sea
for ... in
. Si no desea usar eso (¿quizás porque es marginalmente ineficiente tener que probarhasOwnProperty
en cada iteración?), Entonces use una construcción diferente, por ejemplo, una matriz de kvp:fuente
Como mencionó
$.each()
, aquí hay un enfoque práctico que funcionaría en jQuery 1.6+:fuente
Object.keys () El método Object.keys () devuelve una matriz de propiedades enumerables propias de un objeto dado, en el mismo orden que el proporcionado por un bucle for ... in (la diferencia es que un bucle for-in enumera propiedades en la cadena de prototipos también).
Object.values () El método Object.values () devuelve una matriz de valores de propiedad enumerables propios de un objeto dado, en el mismo orden que el proporcionado por un bucle for ... in (la diferencia es que un bucle for-in enumera propiedades en la cadena del prototipo también).
Para más información ve aquí
fuente
use para cada bucle para acceder a claves en Object o Maps en javascript
Nota: también puedes usar
te dará como esta salida:
[bar];
fuente
Bueno,
$.each
es una construcción de biblioteca, mientras quefor ... in
es js nativo, que debería ser mejorfuente
Puede usar la funcionalidad Object.keys para obtener las claves como:
fuente
para mostrar como una cadena, simplemente use:
fuente
La mejor manera de obtener la clave / valor del objeto.
fuente