Operador spread em JavaScript
No ES6, surgiu um operador especial ...,
chamado de spread.
Quando o operador spread é colocado antes de um array, ele divide esse array em valores individuais, transformando o array em um conjunto de parâmetros necessários para a chamada de uma função.
Provavelmente soa complicado, então vamos
ver um exemplo simples. Suponha que temos
uma função que recebe 3 parâmetros
e retorna a soma deles:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Suponha que também temos um array de três elementos:
let arr = [1, 2, 3];
Obviamente, não podemos simplesmente passar este array como parâmetro da função, assim:
let arr = [1, 2, 3];
func(arr);
Pois, neste caso, todo o array seria passado para o primeiro parâmetro da função, e este parâmetro precisa receber um número (assim como os outros parâmetros também).
Claro, poderíamos fazer o seguinte:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Mas existe um caminho mais fácil - usar o operador spread:
let arr = [1, 2, 3];
func(...arr);
A existência de uma variável não é obrigatória - podemos aplicar o spread diretamente ao array:
func(...[1, 2, 3]);
Dado o array:
let arr = [1, 2, 3, 4, 5];
Dada também a função:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Encontre, usando a função fornecida, a soma dos elementos do array.