Hemos visto múltiples formas de realizar un unpacking de objetos con Javascript: objetos sencillos, objetos anidados,… pero, ¿qué sucede si dentro hay un array de objetos? En este caso vamos a ver cómo podemos realizar un unpacking iterando objetos en Javascript.
Lo primero será definir un objeto que tenga un array, por ejemplo el objeto autor ya utilizado en otras ocasiones:
var autor = {
nombre: 'Santiago Posteguillo',
libros: [
{
titulo: 'Africanus, el hijo del cónsul',
trilogia:'Escipion'
},
{
titulo: 'Las Legiones Malditas',
trilogia:'Escipion'
}
]
}
Vemos que la propiedad libros
contiene un conjunto de objetos representando los libros del array.
Si utilizamos un unpacking de objetos y hacemos lo siguiente:
var {libros: [{titulo}]} = autor;
console.log(titulo);
Lo que vamos a conseguir es obtener el primer valor del objeto anidado. Si bien, a nosotros lo que nos interesa es hacer un unpacking iterando objetos en Javascript para poder mostrar el valor de todos los libros del array.
Para poder hacer una iteración nos apoyamos en la sentencia for...of
. Dentro de la sentencia for...of
vamos a utilizar el unpacking del objeto. La estructura de código será la siguiente:
for (var {propiedad} of array) { ... }
Así, si queremos mostrar todos los libros del array escribiremos:
var {libros} = autor;
for (var {titulo} of libros)
console.log(titulo);
Vemos que hemos hecho una primera desestructuración de la propiedad libros
que es la que tiene el array y que luego se la hemos pasado a la estructura for...of
.
De esta forma hemos conseguido hacer un unpacking iterando objetos en Javascript.