Destructuring en JavaScript
Es un mecanismo de notes/JavaScript que sirve para desestructurar una estructura de datos hacia multiples variables.
Para esto, existe una sintaxis especial que sirve para declarar multiples variables basada en los elementos que ya tiene una estructura de datos.
# Desestructurando Arrays
Se utiliza la sintaxis con corchetes, el orden de los elementos importa.
| |
Esta forma de deconstruccion duplica los elementos de un array, por tanto, si son modificados no afetara al array original.
Adicionalmente, el destructuring tambien es util para intercambiar dos valores de variables.
| |
Y tambien sirve para desestructurar estructuras anidadas
| |
Adicionalmente, tambien podemos conseguir valores por defecto en caso de que estos no se encuentren o se salgan del rango maximo del array
| |
# Desestructurando Objetos
# Variables Inmutables
En este aso, se utiliza la sintaxis con llaves, el orden de los elementos no importa mientras tengan el mismo nombre de las propiedades dentro de los objetos.
| |
De esta manera, cada variable obtendra su respectiva propiedad y podra trabajar de manera individual.
# Variables Mutables
En caso de estar trabajando con variables mutables, debemos notar que lo siguiente dara error de sintaxis debido a que JavaScript toma los corchetes como un inicio de bloque de codigo, por tanto, no puede hacer una asignacion.
| |
Para hacer esto, debemos utilizar un parentesis al rededor de toda la expresion.
| |
# Cambiar Nombres
Adicionalmente, tambien podemos cambiar el nombre de las propiedades a otro que deseemos.
| |
# Valores por Defecto
Tambien podemos asignar un valor por defecto en caso de que la propiedad no exista dentro del objeto. De esta forma evitamos tener ‘undefined’.
| |
# Mutabilidad del Objeto
En este caso, al utilizar la desestructura se te devuelve la misma referencia a los objetos que estan contenidos dentro del objeto. Por tanto, si cambias tus variables cambiaras las de tu objeto tambien.
| |
# Objectos Anidados
Existe tambien una sintaxis especial para lidiar con objetos anidados dentro de objetos. Suponiendo que tenemos el siguiente objeto con objetos anidados:
| |
La forma de obtener, por ejemplo, las horas del dia sabado seria utilizando la sintaxis de cambio de nombres + una anidacion:
| |
# Aplicacion a Funciones
En JavaScript usualmente las funciones suelen tener muchos argumentos, una forma de lidiar con ellos es utilizar un objeto para enviar los parametros, dentro del objeto que recibe la funcion, podemos hacer desestructuracion directamente!.
| |