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:
var autor = {
nombre: 'Santiago Posteguillo',
libros: [
{
titulo: 'Africanus, el hijo del cónsul',
trilogia:'Escipion'
},
{
titulo: 'Las Legiones Malditas',
trilogia:'Escipion'
}
]
}
Vemos que el objeto definido en Javascript contiene un array con objetos anidados. En este caso el objeto representar 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 sencillas vamos a realizar un unpacking de objetos anidados en Javascript.
Para acceder a una propiedad que no esté anidada la estructura será:
var {propiedad} = objeto;
Por ejemplo, si queremos obtener el nombre escribiremos:
var {nombre} = autor;
console.log(nombre);
En el caso que queramos acceder a una propiedad que esté anidada deberemos seguir la siguientes estructura:
var {propiedad: {propiedad_anidada}} = objeto;
Y en el caso de que se encuentre dentro de un array, como es el caso del objeto autor
será con el operador []
:
var {propiedad: [{propiedad_anidada}]} = objeto;
Así, para obtener el título del un libro escribiremos el siguiente código:
var {libros: [{titulo}]} = autor;
console.log(titulo);
De esta forma habremos conseguido realizar un unpacking de objetos anidados en Javascript.