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.
Objeto anidado
Sección titulada «Objeto anidado»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.
Notación de objetos
Sección titulada «Notación de objetos»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);Unpacking de objetos
Sección titulada «Unpacking de objetos»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 CervantesUnpacking de propiedades anidadas
Sección titulada «Unpacking de propiedades anidadas»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 ManchaDe esta forma habremos conseguido realizar un unpacking de objetos anidados en Javascript.