@@ -57,13 +57,19 @@ const student = {
5757 country : {
5858 id : 21 ,
5959 name : "Spain" ,
60- iso3 : "SPA " ,
60+ iso : "ES " ,
6161 } ,
6262} ;
63- const { name, country : { name : countryName , iso3 } } = student ;
63+ const { name, country : { name : countryName , iso } } = student ;
6464console . log ( name ) ; // "Evan"
6565console . log ( countryName ) ; // "Spain"
66- console . log ( iso3 ) ; // "SPA"
66+ console . log ( iso ) ; // "ES"
67+
68+ // IMPORTANTE ⚠ incluso podemos capturar 2 veces una misma propiedad, por ejemplo,
69+ // para quedarnos con ella pero además hacer destructuring en profundidad también:
70+ const { country : { name : countryName , iso } , country } = student ;
71+ console . log ( country ) ; // { ... }
72+ console . log ( countryName , iso ) ; // "Spain", "ES"
6773
6874// Incluso podemos aplicar "destructuring" sobre objetos que se pasan como argumento de una
6975// función:
@@ -104,8 +110,8 @@ console.log(third); // "Ana"
104110
105111// Se puede aplicar "destructuring" sobre arrays pasados como argumento de una función:
106112const students = [ "Alan" , "Evan" , "Ana" ] ;
107- const getSecond = ( [ , second ] ) => second ;
108- console . log ( getSecond ( students ) ) ; // "Evan"
113+ const logSecond = ( [ , second ] ) => console . log ( second ) ;
114+ logSecond ( students ) ; // "Evan"
109115
110116// También se puede aplicar "destructuring" profundo en arrays bidimensionales.
111117const matrix = [
@@ -117,6 +123,14 @@ const matrix = [
117123const [ , [ , center ] ] = matrix ;
118124console . log ( center ) ; // 10;
119125
126+ // IMPORTANTE ⚠: También se puede aplicar destructuring mixto, esto es, mezclar
127+ // desctructuring de arrays y de objetos, en cualquier orden. Para ilustrarlo,
128+ // vamos a descomponer el array interior de la matriz con destructuring de objetos
129+ // puesto que recordad: los arrays son objetos.
130+ const [ , { 1 : center } ] = matrix ;
131+ console . log ( center ) ; // 10;
132+
133+
120134// "DESTRUCTURING" PARA REASIGNAR VARIABLES
121135
122136// Se pueden hacer cosas bastante bizarras con el destructuring, como por ejemplo hacer un swap de
@@ -126,7 +140,7 @@ let a = "a";
126140let b = "b" ;
127141
128142// Swap clásico, nos tenemos que apoyar en variables auxiliares
129- let temp = a ;
143+ const temp = a ;
130144a = b ;
131145b = temp ;
132146
0 commit comments