{"id":77,"date":"2019-03-29T20:13:34","date_gmt":"2019-03-29T19:13:34","guid":{"rendered":"https:\/\/esoftwar.es\/blog\/?p=77"},"modified":"2019-03-29T21:02:22","modified_gmt":"2019-03-29T20:02:22","slug":"todo-sobre-destructuring-assignment-en-javascript-es6","status":"publish","type":"post","link":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/","title":{"rendered":"Todo sobre Destructuring Assignment en JavaScript ES6"},"content":{"rendered":"<h2>\u00bfQu\u00e9 es Destructuring assignment en JavaScript?<\/h2>\n<p>Esta nueva funcionalidad de ES6 llamada <strong>destructuring assignment<\/strong> es una expresi\u00f3n JavaScript que posibilita la extracci\u00f3n de datos tanto de Arrays\u00a0 como de Object . Para ello usamos la misma sintaxis que para la creaci\u00f3n de <strong>Arrays<\/strong> y de <strong>Object<\/strong>, es decir, para los Arrays usamos los corchetes <code class=\"markup--code markup--p-code\">[]<\/code> como constructor y para los Object usamos las llaves <code class=\"markup--code markup--p-code\">{}<\/code><\/p>\n<p>Comentar que en otros lenguajes de programaci\u00f3n tambi\u00e9n se usa esta funcionalidad ya que esto no es nada nuevo en lenguajes como Perl, Python, etc.<!--more--><\/p>\n<h3>\u00bfC\u00f3mo se usa la expresi\u00f3n Destructuring assignment en JavaScript?<\/h3>\n<p>Bien, vamos a poner algunos ejemplos para poder comparar y ver la gran versatilidad y potencia que le podemos sacar a esta funcionalidad nueva de ES6. Tal como coment\u00e9 podemos usar esta funcionalidad con Arrays y Object de JavaScript.<br \/>\nBien, pues como dir\u00eda Jack el destripador vamos por partes.<\/p>\n<p>Imaginemos que tenemos el siguiente c\u00f3digo o situaci\u00f3n en nuestro fichero JavaScript<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\" data-enlighter-theme=\"atomic\">  const developer = {\r\n  name: \"Mar\u00eda\",\r\n  age: 26,\r\n  country: \"Espa\u00f1a\",\r\n  languages: {\r\n    python: \"yes\",\r\n    java: \"yes\",\r\n    php: \"yes\",\r\n    perl: \"not\",\r\n    javascript: \"yes\"\r\n  }\r\n}\r\n\r\nfunction getDeveloperData(dev){\r\n  console.log('Hola, ' + dev.name);\r\n  console.log('Usted sabe python ? ' + (dev.languages.python || \";-)\"));\r\n  console.log('Usted sabe java ? ' + (dev.languages.java || \";-)\"));\r\n  console.log('Usted sabe php ? ' + (dev.languages.php || \";-)\"));\r\n  console.log('Usted sabe perl ? ' + (dev.languages.perl || \";-)\"));\r\n  console.log('Usted sabe javascript ? ' + (dev.languages.javascript || \";-)\"));\r\n}\r\n\r\ngetDeveloperData(developer);\r\n\r\n\/\/Hola, Mar\u00eda\r\n\/\/Usted sabe python ? yes\r\n\/\/Usted sabe java ? yes\r\n\/\/Usted sabe php ? yes\r\n\/\/Usted sabe perl ? not\r\n\/\/Usted sabe javascript ? yes<\/pre>\n<p>Es hora de poner en marcha nuestro c\u00f3digo y c\u00f3mo lo qu\u00e9 queremos es obtener los datos de un objeto JavaScript pues empezamos por aqu\u00ed mismo.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\" data-enlighter-theme=\"atomic\">function getDeveloperDataDestructuring( { name, languages: { python, java, php, perl, javascript } } ){\r\n  console.log('Hola, ' + name);\r\n  console.log('Usted sabe python ? ' + (python || \";-)\"));\r\n  console.log('Usted sabe java ? ' + (java || \";-)\"));\r\n  console.log('Usted sabe php ? ' + (php || \";-)\"));\r\n  console.log('Usted sabe perl ? ' + (perl || \";-)\"));\r\n  console.log('Usted sabe javascript ? ' + (javascript || \";-)\"));\r\n}\r\n\r\ngetDeveloperDataDestructuring(developer);\r\n\r\n\/\/Hola, Mar\u00eda\r\n\/\/Usted sabe python ? yes\r\n\/\/Usted sabe java ? yes\r\n\/\/Usted sabe php ? yes\r\n\/\/Usted sabe perl ? not\r\n\/\/Usted sabe javascript ? yes<\/pre>\n<p>Como se puede ver el c\u00f3digo es <strong>m\u00e1s legible<\/strong> y tiene <strong>menos c\u00f3digo<\/strong>. Lo \u00fanico que hemos hecho aqu\u00ed es pasar a la funci\u00f3n una expresi\u00f3n llamada destructuring assignment para la cual solo queremos obtener los datos del objeto developer tales como name y los languages tales como python, java, php, perl y javascript de esta forma:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\" data-enlighter-theme=\"atomic\">\/\/ Pasados a la funci\u00f3n para hacer destructuring.\r\n{ name, languages: { python, java, php, perl, javascript } }<\/pre>\n<h3>Destructuring de Object en JavaScript ES6<\/h3>\n<p>Bien, ya hemos visto mucha funcionalidad de esta nueva caracter\u00edstica de ES6. Ahora vemos c\u00f3mo se destructura un objeto en javascript.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\/\/ Destructurando el objeto developer\r\n\r\nconst { name, languages: { python, java } } = developer;\r\n\r\nconsole.log( `${name} \u00bfsabe python? ${python}` );\r\n\r\n\/\/ \"Mar\u00eda \u00bfsabe python? yes\"<\/pre>\n<p>Aqu\u00ed hay que tener un especial cuidado si declaramos las variables en el <strong>\u00e1mbito global<\/strong>, que en nuestro caso puede ser <strong>windows<\/strong> si usamos un navegador para ejecutar nuestro javascript. As\u00ed que podemos tener algo como esto:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\/\/ \u00c1mbito global\r\nconst developer = {\r\n  name: \"Mar\u00eda\",\r\n  age: 26,\r\n  country: \"Espa\u00f1a\",\r\n  languages: {\r\n    python: \"yes\",\r\n    java: \"yes\",\r\n    php: \"yes\",\r\n    perl: \"not\",\r\n    javascript: \"yes\"\r\n  }\r\n}\r\n\r\n\/\/ \u00c1mbito global\r\nlet name = 'Diana';     \/\/ Redefinimos variable OJO\r\nlet age = 55;           \/\/ Redefinimos OJO\r\nlet country = \"Inglaterra\"; \/\/ Redefinimos OJO\r\nlet languages = {      \/\/ Redefinimos OJO\r\n  python: \"not\",\r\n  java: \"yes\"\r\n}\r\n\r\nconsole.log(`${name} de ${age} edad, vive en ${country} y \u00bfsabe python? ${languages.python}`);\r\n\r\n\/\/ \"Diana de 55 edad, vive en Inglaterra y \u00bfsabe python? not\"<\/pre>\n<p>Y si intentas hacer esto, destructurar el objeto &#8216;<strong>developer<\/strong>&#8216; recibes un bonito error de tipo <span style=\"color: #ff0000;\">Uncaught SyntaxError: Identifier &#8216;name&#8217; has already been declared<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\/\/ \u00c1mbito global\r\nlet name = 'Diana';\r\nlet age = 55;\r\nlet country = \"Inglaterra\";\r\nlet languages = {\r\n  python: \"not\",\r\n  java: \"yes\"\r\n}\r\n\r\n\/\/ OJO aqui. Error 'Uncaught SyntaxError: Identifier 'name' has already been declared'\r\nconst {name, age, country } = developer; \/\/ Object before 'developer'\r\n\r\nconsole.log(`${name}\u00a0de\u00a0${age}\u00a0edad,\u00a0vive\u00a0en\u00a0${country}\u00a0y\u00a0\u00bfsabe\u00a0python?\u00a0${languages.python}`);<\/pre>\n<p>\u00bfQu\u00e9? Esto no es lo qu\u00e9 yo quiero que suceda \u00a1Pues vamos a solucionarlo!<\/p>\n<p>Para poder solucionar esto lo mejor es crear una funci\u00f3n que nos retorne el objeto destructurado o haga esta funci\u00f3n de desectructurar el objeto que le pasemos.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\/\/ Soluci\u00f3n a los objetos con muchos niveles de profundidad\r\n\r\nfunction getDataWithScope( {name, age, country, languages: { python, java } } ) {\r\n  console.log(`${name} de ${age} edad, vive en ${country} y \u00bfsabe python? ${python}`);\r\n}\r\n\r\ngetDataWithScope(developer);\r\n\r\n\/\/ \"Mar\u00eda de 26 edad, vive en Espa\u00f1a y \u00bfsabe python? yes\"\r\n\/\/<\/pre>\n<h3>Alias en destructuring assignment<\/h3>\n<p>Si, tambi\u00e9n se puede poner alias a los nombres de las variables, aunque esta forma o pr\u00e1ctica no se usa mucho y \u00bfc\u00f3mo puedo hacerlo? pues vamos a verlo.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\/\/ Alias con destructuring assignment \r\n\r\nfunction getDataAlias( {name: nombre, age: edad, country: pais, languages: {python, java}}){\r\n  console.log(`${nombre} de ${edad} edad, vive en ${pais} y \u00bfsabe python? ${python}`);\r\n}\r\ngetDataAlias(developer);\r\n\r\n\/\/ \"Mar\u00eda de 26 edad, vive en Espa\u00f1a y \u00bfsabe python? yes\"\r\n\/\/<\/pre>\n<h3>Valores por defecto en destructuring assignment<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\/\/ Valores por defecto en destructuring assignment\r\n\r\nfunction getDataDefault( {\r\n  name, age, country, addClass = 'MiClase', languages: {\r\n    python = 'Not :-(', java\r\n  }\r\n}) {\r\n  console.log(name, age, `vive en ${country} y \u00bfsabe python?`, python, `,ha a\u00f1adido una clase ${addClass}`);\r\n}\r\n\r\ngetDataDefault(developer);\r\n\r\n\/\/ Mar\u00eda 26 vive en Espa\u00f1a y \u00bfsabe python? yes ,ha a\u00f1adido una clase MiClase\r\n\/\/<\/pre>\n<h3>Destructuring de Arrays en JavaScript ES6<\/h3>\n<p>Bien, tal como se ha comentado los Arrays tambi\u00e9n se pueden extraer sus datos con esta funcionalidad de ES6.<\/p>\n<p>Veamos unos ejemplos:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\/\/ Arrays Destructuring\r\n\r\nconst personName = [\"Maria\", 46, \"Pedro\", 50, \"Diana\", 29];\r\n\r\nconst [ friend1, age1, friend2, age2, friend3, age3 ] = personName;\r\n\r\nconsole.log(`${friend1}, tiene ${age1} \\n ${friend2}, tiene ${age2} \\n ${friend3}, tiene ${age3} \\n`);\r\n\r\n\/\/ Maria, tiene 46 \r\n\/\/ Pedro, tiene 50 \r\n\/\/ Diana, tiene 29 \r\n\/\/\r\n<\/pre>\n<h3>Destructuring de Arrays internos<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\/\/ Array nested \r\n\r\nconst boxData = [\"first\", [33, 44, 55, 66], 34, \"between\", 45, 56, 77, 21 ];\r\n\r\nconst [ first, [num1, num2, num3, num4] ] = boxData;\r\n\r\n\/\/ Use nested destructuring\r\nconsole.log(first, num1, num2, num3, num4);\r\n\r\n\/\/ first 33 44 55 66\r\n\/\/<\/pre>\n<p>Tambi\u00e9n podemos hacer uso de <strong><span style=\"color: #ff6600;\">Rest operator (&#8230;)<\/span><\/strong> para obtener algunos elementos o parte de un array:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\/\/ Use of Rest operatos\r\n\r\nconst colors = ['white', 'orange', 'yellow', 'green', 'blue', 'purple', 'teal', 'turquoise'];\r\n\r\nconst [white, orange, ...otherColors] = colors;\r\n\r\nconsole.log(otherColors);\r\n\r\n\/\/ [\"yellow\", \"green\", \"blue\", \"purple\", \"teal\", \"turquoise\"]\r\n\/\/<\/pre>\n<p>Tambi\u00e9n podemos hacer uso de <span style=\"color: #ff0000;\"><strong>Spread operator (&#8230;)<\/strong><\/span> para por ejemplo clonar un array o los valores de este en otro array:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\/\/ Spread for copy element of array\r\n\r\nconst colors = ['white', 'orange', 'yellow', 'green', 'blue', 'purple', 'teal', 'turquoise'];\r\n\r\nconst colorsCopy = [\r\n  ...colors\r\n];\r\n\r\nconsole.log(colors === colorsCopy); \/\/ false\r\n\r\nconsole.log(colorsCopy);\r\n\r\n\/\/ [\"white\", \"orange\", \"yellow\", \"green\", \"blue\", \"purple\", \"teal\", \"turquoise\"]\r\n\/\/<\/pre>\n<p>Como nota final tenemos que tener en cuenta que cuando hacemos destructuring de arrays<\/p>\n<ul>\n<li>Los datos devueltos tienen un orden de salida, primero el valor del dato <code class=\"markup--code markup--p-code\">[0]<\/code><\/li>\n<li>No se pueden usar <strong>alias.<\/strong><\/li>\n<li>Se pueden usar <strong>Rest operator<\/strong> y <strong>Spread operatos <\/strong>para facilitar su manejo.<\/li>\n<\/ul>\n<h3><span style=\"color: #ff6600;\">Conclusi\u00f3n:<\/span><\/h3>\n<p>En este tutorial hemos visto algunos ejemplos de la nueva funcionalidad de ES6 <strong><span style=\"color: #ff0000;\">Destructuring Assignment<\/span><\/strong> y su sintaxis para el uso con objetos y arrays. Puede que ya sepas manejar todas estas caracter\u00edsticas, espero que aun as\u00ed hayas aprendido algo. Esta funcionalidad que nos da la nueva versi\u00f3n de JavaScript ES6 nos hace la vida m\u00e1s f\u00e1cil en el desarrollo JavaScript el cual est\u00e1 dando un salto de gigante dentro del ecosistema de lenguajes que se usan en FrontEnd como en BackEnd.<\/p>\n<div id=\"s3gt_translate_tooltip_mini\" class=\"s3gt_translate_tooltip_mini_box\" style=\"background: initial !important; border: initial !important; border-radius: initial !important; border-spacing: initial !important; border-collapse: initial !important; direction: ltr !important; flex-direction: initial !important; font-weight: initial !important; height: initial !important; letter-spacing: initial !important; min-width: initial !important; max-width: initial !important; min-height: initial !important; max-height: initial !important; margin: auto !important; outline: initial !important; padding: initial !important; position: absolute; table-layout: initial !important; text-align: initial !important; text-shadow: initial !important; width: initial !important; word-break: initial !important; word-spacing: initial !important; overflow-wrap: initial !important; box-sizing: initial !important; display: initial !important; color: inherit !important; font-size: 13px !important; font-family: X-LocaleSpecific, sans-serif, Tahoma, Helvetica !important; line-height: 13px !important; vertical-align: top !important; white-space: inherit !important; left: 535px; top: 163px; opacity: 0.1;\">\n<div id=\"s3gt_translate_tooltip_mini_logo\" class=\"s3gt_translate_tooltip_mini\" title=\"Traducir texto seleccionado\"><\/div>\n<div id=\"s3gt_translate_tooltip_mini_sound\" class=\"s3gt_translate_tooltip_mini\" title=\"Escuchar\"><\/div>\n<div id=\"s3gt_translate_tooltip_mini_copy\" class=\"s3gt_translate_tooltip_mini\" title=\"Copiar texto al Portapapeles\"><\/div>\n<\/div>\n<div id=\"s3gt_translate_tooltip_mini\" class=\"s3gt_translate_tooltip_mini_box\" style=\"background: initial !important; border: initial !important; border-radius: initial !important; border-spacing: initial !important; border-collapse: initial !important; direction: ltr !important; flex-direction: initial !important; font-weight: initial !important; height: initial !important; letter-spacing: initial !important; min-width: initial !important; max-width: initial !important; min-height: initial !important; max-height: initial !important; margin: auto !important; outline: initial !important; padding: initial !important; position: absolute; table-layout: initial !important; text-align: initial !important; text-shadow: initial !important; width: initial !important; word-break: initial !important; word-spacing: initial !important; overflow-wrap: initial !important; box-sizing: initial !important; display: initial !important; color: inherit !important; font-size: 13px !important; font-family: X-LocaleSpecific, sans-serif, Tahoma, Helvetica !important; line-height: 13px !important; vertical-align: top !important; white-space: inherit !important; left: 582px; top: 3586px; opacity: 0.75;\">\n<div id=\"s3gt_translate_tooltip_mini_logo\" class=\"s3gt_translate_tooltip_mini\" title=\"Traducir texto seleccionado\"><\/div>\n<div id=\"s3gt_translate_tooltip_mini_sound\" class=\"s3gt_translate_tooltip_mini\" title=\"Escuchar\"><\/div>\n<div id=\"s3gt_translate_tooltip_mini_copy\" class=\"s3gt_translate_tooltip_mini\" title=\"Copiar texto al Portapapeles\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQu\u00e9 es Destructuring assignment en JavaScript? Esta nueva funcionalidad de ES6 llamada destructuring assignment es una expresi\u00f3n JavaScript que posibilita la extracci\u00f3n de datos tanto de Arrays\u00a0 como de Object . Para ello usamos la misma sintaxis que para la creaci\u00f3n de Arrays y de Object, es decir, para los Arrays usamos los corchetes [] [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":78,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"full-width-content","footnotes":""},"categories":[4],"tags":[],"class_list":{"0":"post-77","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-javascript","8":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Todo sobre Destructuring Assignment en JavaScript ES6 - Aprendiendo lenguajes por c\u00f3digo<\/title>\n<meta name=\"description\" content=\"Funcionalidad de ES6 llamada Destructuring Assignment, es una expresi\u00f3n JavaScript que posibilita la extracci\u00f3n de datos tanto de Arrays como de Object.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Todo sobre Destructuring Assignment en JavaScript ES6\" \/>\n<meta property=\"og:description\" content=\"Esta nueva funcionalidad de ES6 llamada destructuring assignment es una expresi\u00f3n JavaScript que posibilita la extracci\u00f3n de datos tanto de Arrays\u00a0 como de Object . Para ello usamos la misma sintaxis que para la creaci\u00f3n de Arrays y de Object, es decir, para los Arrays usamos los corchetes [] como constructor y para los Object usamos las llaves {}\" \/>\n<meta property=\"og:url\" content=\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/\" \/>\n<meta property=\"og:site_name\" content=\"Aprendiendo lenguajes por c\u00f3digo\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-29T19:13:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-03-29T20:02:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png\" \/>\n\t<meta property=\"og:image:width\" content=\"850\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Francisco Pay\u00e1n\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Todo sobre Destructuring Assignment en JavaScript ES6\" \/>\n<meta name=\"twitter:description\" content=\"Esta nueva funcionalidad de ES6 llamada destructuring assignment es una expresi\u00f3n JavaScript que posibilita la extracci\u00f3n de datos tanto de Arrays\u00a0 como de Object . Para ello usamos la misma sintaxis que para la creaci\u00f3n de Arrays y de Object, es decir, para los Arrays usamos los corchetes [] como constructor y para los Object usamos las llaves {}\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Francisco Pay\u00e1n\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/\"},\"author\":{\"name\":\"Francisco Pay\u00e1n\",\"@id\":\"https:\/\/esoftwar.es\/blog\/#\/schema\/person\/987708a8a221d06730da8fe3a552aebf\"},\"headline\":\"Todo sobre Destructuring Assignment en JavaScript ES6\",\"datePublished\":\"2019-03-29T19:13:34+00:00\",\"dateModified\":\"2019-03-29T20:02:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/\"},\"wordCount\":642,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/esoftwar.es\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png\",\"articleSection\":[\"JavaScript\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/\",\"url\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/\",\"name\":\"Todo sobre Destructuring Assignment en JavaScript ES6 - Aprendiendo lenguajes por c\u00f3digo\",\"isPartOf\":{\"@id\":\"https:\/\/esoftwar.es\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png\",\"datePublished\":\"2019-03-29T19:13:34+00:00\",\"dateModified\":\"2019-03-29T20:02:22+00:00\",\"description\":\"Funcionalidad de ES6 llamada Destructuring Assignment, es una expresi\u00f3n JavaScript que posibilita la extracci\u00f3n de datos tanto de Arrays como de Object.\",\"breadcrumb\":{\"@id\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#primaryimage\",\"url\":\"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png\",\"contentUrl\":\"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png\",\"width\":850,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/esoftwar.es\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Todo sobre Destructuring Assignment en JavaScript ES6\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/esoftwar.es\/blog\/#website\",\"url\":\"https:\/\/esoftwar.es\/blog\/\",\"name\":\"Aprendiendo lenguajes por c\u00f3digo\",\"description\":\"Blog para geek y otras hierbas.\",\"publisher\":{\"@id\":\"https:\/\/esoftwar.es\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/esoftwar.es\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/esoftwar.es\/blog\/#organization\",\"name\":\"esoftwar.es\",\"url\":\"https:\/\/esoftwar.es\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/esoftwar.es\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/Logo550.png\",\"contentUrl\":\"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/Logo550.png\",\"width\":550,\"height\":550,\"caption\":\"esoftwar.es\"},\"image\":{\"@id\":\"https:\/\/esoftwar.es\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/esoftwar.es\/blog\/#\/schema\/person\/987708a8a221d06730da8fe3a552aebf\",\"name\":\"Francisco Pay\u00e1n\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/esoftwar.es\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2ea17ea73a0207c077cefb69f8fcf7c5c420e02371e882b906295cde73c5fd50?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2ea17ea73a0207c077cefb69f8fcf7c5c420e02371e882b906295cde73c5fd50?s=96&d=mm&r=g\",\"caption\":\"Francisco Pay\u00e1n\"},\"description\":\"Desarrollador Backend, Frontend y Mobile. Autodidacta apasionado del c\u00f3digo fuente. Mis metas son aprender y desarrollar c\u00f3digo en el d\u00eda a d\u00eda. Me gusta la m\u00fasica, el deporte al aire libre y tener amigos\/as.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Todo sobre Destructuring Assignment en JavaScript ES6 - Aprendiendo lenguajes por c\u00f3digo","description":"Funcionalidad de ES6 llamada Destructuring Assignment, es una expresi\u00f3n JavaScript que posibilita la extracci\u00f3n de datos tanto de Arrays como de Object.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/","og_locale":"es_ES","og_type":"article","og_title":"Todo sobre Destructuring Assignment en JavaScript ES6","og_description":"Esta nueva funcionalidad de ES6 llamada destructuring assignment es una expresi\u00f3n JavaScript que posibilita la extracci\u00f3n de datos tanto de Arrays\u00a0 como de Object . Para ello usamos la misma sintaxis que para la creaci\u00f3n de Arrays y de Object, es decir, para los Arrays usamos los corchetes [] como constructor y para los Object usamos las llaves {}","og_url":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/","og_site_name":"Aprendiendo lenguajes por c\u00f3digo","article_published_time":"2019-03-29T19:13:34+00:00","article_modified_time":"2019-03-29T20:02:22+00:00","og_image":[{"width":850,"height":300,"url":"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png","type":"image\/png"}],"author":"Francisco Pay\u00e1n","twitter_card":"summary_large_image","twitter_title":"Todo sobre Destructuring Assignment en JavaScript ES6","twitter_description":"Esta nueva funcionalidad de ES6 llamada destructuring assignment es una expresi\u00f3n JavaScript que posibilita la extracci\u00f3n de datos tanto de Arrays\u00a0 como de Object . Para ello usamos la misma sintaxis que para la creaci\u00f3n de Arrays y de Object, es decir, para los Arrays usamos los corchetes [] como constructor y para los Object usamos las llaves {}","twitter_image":"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png","twitter_misc":{"Escrito por":"Francisco Pay\u00e1n","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#article","isPartOf":{"@id":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/"},"author":{"name":"Francisco Pay\u00e1n","@id":"https:\/\/esoftwar.es\/blog\/#\/schema\/person\/987708a8a221d06730da8fe3a552aebf"},"headline":"Todo sobre Destructuring Assignment en JavaScript ES6","datePublished":"2019-03-29T19:13:34+00:00","dateModified":"2019-03-29T20:02:22+00:00","mainEntityOfPage":{"@id":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/"},"wordCount":642,"commentCount":0,"publisher":{"@id":"https:\/\/esoftwar.es\/blog\/#organization"},"image":{"@id":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#primaryimage"},"thumbnailUrl":"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png","articleSection":["JavaScript"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/","url":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/","name":"Todo sobre Destructuring Assignment en JavaScript ES6 - Aprendiendo lenguajes por c\u00f3digo","isPartOf":{"@id":"https:\/\/esoftwar.es\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#primaryimage"},"image":{"@id":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#primaryimage"},"thumbnailUrl":"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png","datePublished":"2019-03-29T19:13:34+00:00","dateModified":"2019-03-29T20:02:22+00:00","description":"Funcionalidad de ES6 llamada Destructuring Assignment, es una expresi\u00f3n JavaScript que posibilita la extracci\u00f3n de datos tanto de Arrays como de Object.","breadcrumb":{"@id":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#primaryimage","url":"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png","contentUrl":"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/js-destructuring.png","width":850,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/esoftwar.es\/blog\/todo-sobre-destructuring-assignment-en-javascript-es6\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/esoftwar.es\/blog\/"},{"@type":"ListItem","position":2,"name":"Todo sobre Destructuring Assignment en JavaScript ES6"}]},{"@type":"WebSite","@id":"https:\/\/esoftwar.es\/blog\/#website","url":"https:\/\/esoftwar.es\/blog\/","name":"Aprendiendo lenguajes por c\u00f3digo","description":"Blog para geek y otras hierbas.","publisher":{"@id":"https:\/\/esoftwar.es\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/esoftwar.es\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/esoftwar.es\/blog\/#organization","name":"esoftwar.es","url":"https:\/\/esoftwar.es\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/esoftwar.es\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/Logo550.png","contentUrl":"https:\/\/esoftwar.es\/blog\/wp-content\/uploads\/2019\/03\/Logo550.png","width":550,"height":550,"caption":"esoftwar.es"},"image":{"@id":"https:\/\/esoftwar.es\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/esoftwar.es\/blog\/#\/schema\/person\/987708a8a221d06730da8fe3a552aebf","name":"Francisco Pay\u00e1n","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/esoftwar.es\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2ea17ea73a0207c077cefb69f8fcf7c5c420e02371e882b906295cde73c5fd50?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2ea17ea73a0207c077cefb69f8fcf7c5c420e02371e882b906295cde73c5fd50?s=96&d=mm&r=g","caption":"Francisco Pay\u00e1n"},"description":"Desarrollador Backend, Frontend y Mobile. Autodidacta apasionado del c\u00f3digo fuente. Mis metas son aprender y desarrollar c\u00f3digo en el d\u00eda a d\u00eda. Me gusta la m\u00fasica, el deporte al aire libre y tener amigos\/as."}]}},"_links":{"self":[{"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/posts\/77","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/comments?post=77"}],"version-history":[{"count":24,"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/posts\/77\/revisions"}],"predecessor-version":[{"id":104,"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/posts\/77\/revisions\/104"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/media\/78"}],"wp:attachment":[{"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/media?parent=77"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/categories?post=77"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esoftwar.es\/blog\/wp-json\/wp\/v2\/tags?post=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}