freeCodeCamp/curriculum/challenges/spanish/02-javascript-algorithms-an.../es6/use-the-rest-operator-with-...

2.7 KiB

id title challengeType videoUrl localeTitle
587d7b88367417b2b2512b47 Use the Rest Operator with Function Parameters 1 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

tests:
  - text: 'El resultado de la <code>sum(0,1,2)</code> debe ser 3.'
    testString: 'assert(sum(0,1,2) === 3, "The result of <code>sum(0,1,2)</code> should be 3");'
  - text: 'El resultado de la <code>sum(1,2,3,4)</code> debe ser 10.'
    testString: 'assert(sum(1,2,3,4) === 10, "The result of <code>sum(1,2,3,4)</code> should be 10");'
  - text: El resultado de la <code>sum(5)</code> debe ser 5.
    testString: 'assert(sum(5) === 5, "The result of <code>sum(5)</code> should be 5");'
  - text: El resultado de <code>sum()</code> debe ser 0
    testString: 'assert(sum() === 0, "The result of <code>sum()</code> should be 0");'
  - text: La función de <code>sum</code> usa el operador de <code>...</code> propagación en el parámetro <code>args</code> .
    testString: 'getUserInput => assert(getUserInput("index").match(/function\s+sum\s*\(\s*...args\s*\)\s*{/g), "The <code>sum</code> function uses the <code>...</code> spread operator on the <code>args</code> parameter.");'

Challenge Seed

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

// solution required