DEV Community

Cover image for Destructuring assignment e Spread operator
Alison Silva 🔥💯⛏️
Alison Silva 🔥💯⛏️

Posted on

Destructuring assignment e Spread operator

Combinar desestruturação com spread operator pode facilitar muito o desenvolvimento.
Como podemos ver no exemplo a seguir, os valores do array serão atribuídos as variáveis a e b, e o restante dos valores passarão para a variável rest. Entretanto isso só é possível porque utilizamos o spread operator, caso contrario, o valor da variável rest seria 2. Ao utilizarmos ... dizemos que todos os valores restante do array, devem ser atribuídos a nossa variável rest.

let a, b, rest;
[a, b, ...rest] = [0, 1, 2, 3, 4, 5, 6];
// a = 0
// b = 1
// rest = [2, 3, 4, 5, 6]
Enter fullscreen mode Exit fullscreen mode

O mesmo pode ser aplicado ao retorno de uma função.

let func = () => [0, 1, 2, 3, 4];
[a, b, ...rest] = func();
// a = 0
// b = 1
// rest = [2, 3, 4]
Enter fullscreen mode Exit fullscreen mode

Podemos utilizar também para objectos.

({a, b, ...rest} = {a:1, b:2, c:3, d:4}); 
// a = 1
// b = 2
// rest = {c:3,d:4}
Enter fullscreen mode Exit fullscreen mode

Discussion (0)