Ir al contenido

Unpacking de objetos anidados en Javascript

Ya hemos visto en un artículo cómo podemos realizar un unpacking de objetos con Javascript. En este caso vamos a ver cómo podemos hacer un unpacking de objetos anidados en Javascript. Y es que la complejidad del objeto puede ser aquella que queramos.

En este caso vamos a partir de un objeto anidado:

let autor = {
nombre: "Miguel de Cervantes",
pais: "España",
libros: [
{titulo: "Don Quijote de la Mancha", anio: 1605},
{titulo: "Novelas Ejemplares", anio: 1613}
]
};

Vemos que el objeto definido en Javascript contiene un array con objetos anidados. En este caso el objeto representa a un autor y los objetos anidados los libros que ha escrito.

Si queremos acceder a estos elementos mediante notación de objetos escribiremos mediante la estructura objeto.propiedad:

console.log(autor.nombre);
console.log(autor.libros[0].titulo);

Pero para manejar las variables de una forma más sencilla vamos a realizar un unpacking de objetos anidados en Javascript. Para acceder a una propiedad que no esté anidada la estructura será:

let {propiedad} = objeto;

Por ejemplo, si queremos obtener el nombre escribiremos:

let {nombre} = autor;
console.log(nombre); // Miguel de Cervantes

En el caso de que queramos acceder a una propiedad que esté anidada deberemos seguir la siguiente estructura:

let {propiedad: {propiedadAnidada}} = objeto;

Y en el caso de que se encuentre dentro de un array, como es el caso del objeto autor será con el operador []:

let {propiedad: [{propiedadAnidada}]} = objeto;

Así, para obtener el título de un libro escribiremos el siguiente código:

let {libros: [{titulo}]} = autor;
console.log(titulo); // Don Quijote de la Mancha

De esta forma habremos conseguido realizar un unpacking de objetos anidados en Javascript.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Unpacking de objetos anidados en Javascript

Descargar código