JS: Objetos
Teoría: Recorriendo las propiedades de un objeto
Cuando trabajamos con objetos en JavaScript, a veces necesitamos recorrer sus propiedades.
A diferencia de los arrays, los objetos no tienen un orden predefinido ni se pueden recorrer directamente con for..of. Sin embargo, existen varias formas de hacerlo, y aquí veremos las más útiles.
El Bucle for..in
La forma más sencilla de recorrer un objeto es con el bucle for..in. Este bucle recorre todas las propiedades del objeto:
⚠️ Sin embargo, for..in tiene una peculiaridad: también recorre las propiedades heredadas del prototipo del objeto. Esto puede generar resultados inesperados, por lo que en la mayoría de los casos es mejor utilizar otros métodos.
Métodos para recorrer objetos
Para un mayor control al recorrer objetos, JavaScript nos proporciona tres métodos muy útiles:
Object.keys(obj): Obtener un array de claves
Si solo queremos las claves del objeto, podemos usar Object.keys(obj), que devuelve un array con los nombres de las propiedades.
Podemos recorrer este array con un bucle for..of:
Object.values(obj): Obtener un array de valores
Si no necesitamos las claves y solo queremos los valores, podemos usar Object.values(obj), que devuelve un array con los valores de las propiedades del objeto.
Object.entries(obj): Obtener claves y valores juntos
Si queremos tanto las claves como los valores al mismo tiempo, Object.entries(obj) nos devuelve un array donde cada elemento es otro array con [clave, valor].
Esto nos permite recorrer todo el objeto de una manera elegante usando desestructuración:
##Encontrar claves con ciertos valores
Supongamos que tenemos un objeto donde las claves son nombres de temas de una lección y los valores representan la cantidad de estudiantes que estudiaron cada tema. Queremos encontrar las claves donde el valor coincida con un número dado.
Función findKeys()
Orden de las Claves en un Objeto
A diferencia de los arrays, los objetos en JavaScript no garantizan un orden estricto en sus propiedades. El orden de las claves sigue ciertas reglas internas de JavaScript pero no siempre es intuitivo. Si necesitamos mantener un orden específico, podemos usar un array adicional para almacenar las claves en el orden deseado.
Resumen
- Los objetos en JavaScript no se recorren con
for..of, sino confor..inu otros métodos. for..inrecorre todas las propiedades del objeto, incluidas las heredadas del prototipo, lo cual puede ser no deseado.- Mejores métodos para recorrer objetos:
Object.keys(obj): Devuelve un array con las claves del objeto.Object.values(obj): Devuelve un array con los valores del objeto.Object.entries(obj): Devuelve un array de[clave, valor], lo que permite recorrer el objeto con más flexibilidad.
Object.entries(obj)es muy útil cuando queremos buscar valores específicos en un objeto, como vimos en nuestra funciónfindKeys().- El orden de las claves en un objeto no es predecible; si se necesita un orden específico, es mejor mantener un array con la secuencia deseada.
Completado
0 / 13