¿Cómo puedo hacer un bucle o enumerar un objeto de JavaScript?
Tengo un objeto JavaScript como el siguiente:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
Ahora quiero recorrer todos los elementos p
(p1
, p2
, p3
...) y obtener sus claves y valores. ¿Cómo puedo hacerlo?
Puedo modificar el objeto JavaScript si es necesario. Mi objetivo final es hacer un bucle a través de algunos pares clave-valor y si es posible quiero evitar el uso de eval
.
2688
3
Puedes utilizar el bucle
for-in
como han mostrado otros. Sin embargo, también tienes que asegurarte de que la clave que obtienes es una propiedad real de un objeto, y no proviene del prototipo.Aquí está el fragmento:
Para con la alternativa Object.keys():
Fíjate en el uso de
for-of
en lugar defor-in
, si no se usa devolverá undefined en las propiedades con nombre, y Object.keys() asegura el uso sólo de las propiedades propias del objeto sin las propiedades de toda la cadena de prototiposPuedes simplemente iterar sobre ella como:
Ten en cuenta que
key
no tomará el valor de la propiedad, es sólo un valor de índice.Nota: puedes hacer esto sobre arrays, pero también iterarás sobre la
longitud
y otras propiedades.