Parâmetros Rest

Os parâmetros rest são utilizados para passar um número indefinido de argumentos para uma função e poder acessar esses argumentos dentro da função. Os parâmetros rest são declarados com o operador ... e sempre devem ser o último parâmetro da função. Dentro da função o parametro rest é um array.

Exemplos de uso:

// Soma todos os números
function soma(...numeros) {
  return numeros.length ? numeros.reduce((a, b) => a + b) : 0;
}

soma(1, 2, 3, 4, 5);
// Resultado: 15
// Multiplica todos os números depois do primeiro pelo primeiro número e retorna o array
function multiplicaArray(multiplicador, ...numeros) {
  return numeros.map((numero) => numero * multiplicador);
}

multiplicaArray(2, 1, 2, 3, 4, 5);
// Resultado: [2, 4, 6, 8, 10]

Operador de Espalhamento

Os parâmetros rest podem ser utilizados em conjunto com o operador de espalhamento (...) para passar um array para uma função que aceita parâmetros rest.

// Soma todos os números
function soma(...numeros) {
  return numeros.length ? numeros.reduce((a, b) => a + b) : 0;
}

var array = [1, 2, 3, 4, 5];

soma(...array);
// Resultado: 15

Referências