Digamos que tienes un objeto JavaScript como esto:¿Cómo accedo a las propiedades de un objeto javascript si no conozco los nombres?
var data = { foo: 'bar', baz: 'quux' };
Puede acceder a las propiedades por el nombre de la propiedad:
var foo = data.foo;
var baz = data["baz"];
Pero ¿es posible obtener estos valores si no se conoce el nombre de las propiedades? ¿La naturaleza desordenada de estas propiedades hace que sea imposible distinguirlas?
En mi caso, estoy pensando específicamente en una situación en la que una función necesita aceptar una serie de pares nombre-valor, pero los nombres de las propiedades pueden cambiar.
Mis pensamientos sobre cómo hacer esto hasta ahora es pasar los nombres de las propiedades a la función junto con los datos, pero esto se siente como un truco. Preferiría hacer esto con introspección si es posible.
Ahora, esto realmente responde a la pregunta, bien hecho @ Adam Lassek, muy bien hecho. –
Es engañoso usar tanto "nombre" como "valor" como claves de objeto. Esta función solo devuelve las claves en una lista, no los valores. {name1: 'value1', name2: 'value2'} evitará confusión para los principiantes. Object.keys (datos); // ['name1', 'name2'] –
@JamesNicholson Estoy de acuerdo, editado para ser menos confuso. –