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);
}