JS: Objetos
Teoría: Desestructuración
Cuando trabajamos con datos en JavaScript, a menudo nos encontramos con estructuras complejas de objetos que contienen otros objetos dentro. Extraer estos datos fácilmente es clave para escribir un código más organizado y legible.
En esta lección, exploraremos cómo la destructuración nos ayuda a manejar objetos anidados, facilitando la extracción de la información que necesitamos sin escribir código repetitivo.
Acceder a datos anidados
Imagina que tenemos un objeto user que contiene información de una empresa:
Si queremos acceder al nombre de la empresa y su fecha de creación, podemos hacerlo así:
Esto funciona, pero escribir user.company.name y user.company.createdAt repetidamente puede volverse tedioso. Para hacer nuestro código más limpio, podemos definir una constante intermedia:
Esto ayuda un poco, pero si nuestro objeto tiene varios niveles de anidación, el código puede volverse largo y difícil de manejar.
Veamos un caso más complejo. Supongamos que tenemos una respuesta de una API con una estructura anidada:
Para obtener datos útiles de esta estructura, tendríamos que hacer algo como esto:
Aquí es donde la destructuración de objetos nos puede ayudar a escribir código más claro y conciso.
¿Qué es la destructuración?
¿Qué hizo la destructuración aquí?
- Creamos un objeto
personcon tres propiedades (firstName,lastName,manager). - Extraemos solo
firstNameymanagerusandoconst { firstName, manager } = person. - Ahora podemos usar
firstNameymanagersin necesidad de escribirperson.firstNameoperson.manager.
Cambiar el nombre de las propiedades
A veces, queremos cambiar el nombre de una variable cuando extraemos datos. Podemos hacerlo así:
Aquí cambiamos manager por isManager para evitar posibles conflictos con otra variable llamada manager.
Usar valores predeterminados
Si accedemos a una propiedad que no existe, JavaScript nos devuelve undefined. Podemos evitarlo definiendo un valor por defecto:
Si la propiedad manager no existe en el objeto, automáticamente tomará el valor false.
Destructuración anidada
Podemos extraer datos de objetos anidados como hicimos manualmente con response.data.attributes antes, pero de manera más eficiente:
Esto hace lo mismo que el código anterior, pero de manera más compacta y fácil de leer.
El Operador Rest (...) en la destructuración
Si queremos extraer solo algunas propiedades y guardar el resto en un solo objeto, podemos usar el operador rest (...):
Aquí, extraemos name y guardamos el resto de las propiedades (email y age) en el objeto rest.
Resumen
- La destructuración nos permite extraer valores de objetos de forma sencilla y legible.
- Podemos extraer solo las propiedades que necesitamos sin afectar el objeto original.
- Es posible cambiar el nombre de las propiedades al extraerlas (
manager: isManager). - Podemos definir valores predeterminados (
{ manager = false }). - Podemos extraer datos de objetos anidados sin escribir accesos repetitivos (
const { links, attributes: user } = response.data). - Con el operador
...rest, podemos capturar las propiedades restantes en un solo objeto.
Si bien la destructuración no es obligatoria, hace que nuestro código sea más limpio y fácil de entender. ¡Practica con ella y notarás la diferencia!
Completado
0 / 13