--- id: 587d7b88367417b2b2512b47 title: Use the Rest Operator with Function Parameters challengeType: 1 videoUrl: '' localeTitle: Utilice el operador de reposo con parámetros de función --- ## Description
Para ayudarnos a crear funciones más flexibles, ES6 presenta al operador de resto para los parámetros de función. Con el operador resto, puede crear funciones que toman un número variable de argumentos. Estos argumentos se almacenan en una matriz a la que se puede acceder posteriormente desde dentro de la función. Echa un vistazo a este código:
función howMany (... args) {
return "Has pasado" + args.length + "argumentos.";
}
console.log (howMany (0, 1, 2)); // Has pasado 3 argumentos
console.log (howMany ("string", null, [1, 2, 3], {})); // Has pasado 4 argumentos.
El operador restante elimina la necesidad de verificar la matriz de args y nos permite aplicar map() , filter() y reduce() en la matriz de parámetros.
## Instructions
Modifique la sum la función para que use el operador de descanso y funcione de la misma manera con cualquier número de parámetros.
## Tests
```yml tests: - text: 'El resultado de la sum(0,1,2) debe ser 3.' testString: 'assert(sum(0,1,2) === 3, "The result of sum(0,1,2) should be 3");' - text: 'El resultado de la sum(1,2,3,4) debe ser 10.' testString: 'assert(sum(1,2,3,4) === 10, "The result of sum(1,2,3,4) should be 10");' - text: El resultado de la sum(5) debe ser 5. testString: 'assert(sum(5) === 5, "The result of sum(5) should be 5");' - text: El resultado de sum() debe ser 0 testString: 'assert(sum() === 0, "The result of sum() should be 0");' - text: La función de sum usa el operador de ... propagación en el parámetro args . testString: 'getUserInput => assert(getUserInput("index").match(/function\s+sum\s*\(\s*...args\s*\)\s*{/g), "The sum function uses the ... spread operator on the args parameter.");' ```
## Challenge Seed
```js const sum = (function() { "use strict"; return function sum(x, y, z) { const args = [ x, y, z ]; return args.reduce((a, b) => a + b, 0); }; })(); console.log(sum(1, 2, 3)); // 6 ```
## Solution
```js // solution required ```