Files
freeCodeCamp/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/es6/use-the-rest-parameter-with-function-parameters.md

1.9 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b88367417b2b2512b47 Usar o parâmetro rest com parâmetros de função 1 301221 use-the-rest-parameter-with-function-parameters

--description--

Para nos ajuda a criar funções mais flexíveis, ES6 introduziu o parâmetro rest para parâmetros de funções. Com o parâmetro rest, você pode criar funções que recebem um número variável de argumentos. Esses argumentos são armazenados em um array que pode ser acessado depois dentro da função.

Verifique esse código:

function howMany(...args) {
  return "You have passed " + args.length + " arguments.";
}
console.log(howMany(0, 1, 2));
console.log(howMany("string", null, [1, 2, 3], { }));

O console exibiria as strings You have passed 3 arguments e `You have passed 4 arguments..

O parâmetro rest elimina a necessidade de verificar o array args` e nos permite usar `map()`, `filter()` e `reduce()` no array de parâmetros.

--instructions--

Modifique a função sum usando o parâmetro rest de tal forma que a função sum seja capaz de receber qualquer número de argumentos e retornar a soma deles.

--hints--

O resultado de sum(0,1,2) deve ser 3

assert(sum(0, 1, 2) === 3);

O resultado de sum(1,2,3,4) deve ser 10

assert(sum(1, 2, 3, 4) === 10);

O resultado de sum(5) deve ser 5

assert(sum(5) === 5);

O resultado de sum() deve ser 0

assert(sum() === 0);

sum deve ser uma arrow function que usa a sintaxe de parâmetro rest (...) no parâmetro args.

assert(__helpers.removeWhiteSpace(code).match(/sum=\(\.\.\.args\)=>/));

--seed--

--seed-contents--

const sum = (x, y, z) => {
  const args = [x, y, z];
  return args.reduce((a, b) => a + b, 0);
}

--solutions--

const sum = (...args) => {
  return args.reduce((a, b) => a + b, 0);
}