Destructuring Assignment en Javascript
3 minuto(s)En esta página:
Las sintaxis por destructuring assignment vendría a ser lo que llamamos extracción de los datos de arreglos u objetos trabajando con una sintaxis similar a la construcción de arrays y objetos literales, estos paquetes de datos una ves creados puedes usarlos dentro de tu código cuando así lo requieras.
Destructurar un Array
Por ejemplo si tenemos una variable foo con 3 datos uno, dos y tres al estar aun sin destructurarse estos datos pueden ser 3 datos separados, pero los podemos destructurar para darle un mejor orden, ahorro de línea de código y más limpieza
|
1 2 3 4 5 6 7 8 9 10 11 |
var foo = ["uno", "dos", "tres"]; // sin destructurar var uno = foo[0]; var dos = foo[1]; var tres = foo[2]; // asignación en tres lineas // con destructuración var [uno, dos, tres] = foo; // asignación en una sola linea |
También podemos devolver múltiples valores en una función mediante destructuring assignment, aunque en Javascript siempre es posible exportar un array, con destructuring assignment eso es más sencillo por ejemplo si tenemos la siguiente función llamada postres y me retorna 3 valores
|
1 2 3 4 5 |
function postres() { return [1, 2, 3]; } |
Ignorando valores de retorno
Por otro lado si necesitas ignorar un o unos de lo valores de retorno solo debes hacer lo siguiente
|
1 2 3 4 5 6 7 8 |
function postres() { return [1, 2, 3]; } var [a, , b] = postres(); //ignoramos el dato b console.log("A es " + a + " B es " + b) |
En el código anterior estamos ignorando el segundo valor es decir al exportar un array a = 1, b = 2 y c = 3, pero como estamos ignorando el segundo elemento del array no lo imprime, solo imprime el primer y segundo elemento.
Si queremos ignorar todos los datos del array solo escribimos
|
1 2 3 |
[,,] = postres(); |
Extraer valores de una Expresión regular
Si usamos el metod exec() para trabajar con una expresión regular y extraer el protocolo de conexion de una url, podemos ver que discrimina parte del nombre del dominio y nos imprime http
|
1 2 3 4 5 6 7 8 |
var url = "https://nubecolectiva.com"; var parsedURL = /^(\w+)\:\/\/([^\/]+)\/(.*)$/.exec(url); var [, protocol, fullhost, fullpath] = parsedURL; console.log(protocol); // logs "http:" |
Con Destructuring Assignment extraemos facilmente esa parte del array ignorando todo el valor de la url.
Destructurar un Objeto
Por ejemplo tenemos la variable o y la variable que le sigue abajo hereda sus valores, destructurando logramos asignarle nuevos nombres a las variables y mostramos los valores heredados de las variables anteriores
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var o = {p: 42, q: true}; var {p, q} = o; console.log(p); // 42 console.log(q); // true // Le asignamos nuevos nombres a las variables var {p: foo, q: bar} = o; console.log(foo); // 42 console.log(bar); // true |
Destructuring assignment sin declaración
Podemos hacerlo deferente sin declarar en la sentencia de asignación
|
1 2 3 4 5 |
var a, b; ({a, b} = {a:1, b:2}); |
Destructuring de Objetos Anidados
Si tenemos datos anidados (Nested Objects) tambien podemos destructurarlos como en el siguiente ejemplo
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var metadata = { title: "Collective Cloud Perú", translations: [ { locale: "es", localization_tags: [ ], last_edit: "2018-07-06T08:43:37", url: "/5-principios-fundamentales-del-ux-design", title: "5 Principios Fundamentales del UX Design" } ], url: "/es-PE/5-principios-fundamentales-del-ux-design" }; var { title: spanishTitle, translations: [{ title: localeTitle }] } = metadata; console.log(englishTitle); // "Collective Cloud Perú" console.log(localeTitle); // "5 Principios Fundamentales del UX Design" |
Interactuando con For en un destructuring
Para trabajar con el bucle For puedes ver el siguiente ejemplo
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
var elementos = [ { nombre: "Categorias", items: { uno: "Node JS", dos: "Vue JS", tres: "Java", 4: "Linkedin Ads" }, ncat: 4 }, { nombre: "Articulos", items: { uno: "Qué significa cada etiqueta de tu Sitemap XML", dos: "5 Principios Fundamentales del UX Design", 3: "Los hashtag en Instagram: ¿cómo seguirlos?" }, nart: 3 } ]; for (var {nombre: n, items: { dos: v } } of elementos) { console.log("Nombre: " + n + ", Valor: " + v); } // "Nombre: Categorias, Valor: Vue JS" // "Nombre: Articulos, Valor: 5 Principios Fundamentales del UX Design"" |
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.
También en las categorías, etiquetas, búsquedas y más.
En versiones anteriores, se veian con alto disparejo.
Seguimos trabajando en mejorar la comunidad.



Seguimos trabajando las 24 horas del día para brindarte la mejor experiencia en la comunidad.
Hemos corregido el problema y ahora la web no muestra esa barra horizontal y se ve en su tamaño natural.
Seguimos trabajando las 24 horas del día, para mejorar la comunidad.
Seguimos trabajando las 24 horas y 365 días del año para mejorar tu experiencia en la comunidad.

Seguimos trabajando para brindarte le mejor experiencia en Nube Colectiva.
Social
Redes Sociales (Developers)
Redes Sociales (Digital)