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]
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]
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}
Top comments (0)