Unpacking de objetos anidados en Javascript

27/Sep/2017 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:

  1. var autor = {
  2. nombre: 'Santiago Posteguillo',
  3. libros: [
  4. {
  5. titulo: 'Africanus, el hijo del cónsul',
  6. trilogia:'Escipion'
  7. },
  8. {
  9. titulo: 'Las Legiones Malditas',
  10. trilogia:'Escipion'
  11. }
  12. ]
  13. }

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:

  1. console.log(autor.nombre);
  2. 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á:

  1. var {propiedad} = objeto;

Por ejemplo, si queremos obtener el nombre escribiremos:

  1. var {nombre} = autor;
  2. console.log(nombre);

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

  1. 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 []:

  1. var {propiedad: [{propiedad_anidada}]} = objeto;

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

  1. var {libros: [{titulo}]} = autor;
  2. console.log(titulo);

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

Vídeos sobre Javascript