Use the Rest Operator with Function Parameters - rest not working

Tell us what’s happening:

TypeError: unknown: Duplicate declaration “args”
2 | “use strict”;
3 | return function sum(…args) {

4 | const args = [ x, y, z ];
| ^
5 | return args.reduce((a, b) => a + b, 0);
6 | };
7 | })();

Your code so far


const sum = (function() {
  "use strict";
  return function sum(...args) {
    const args = [ x, y, z ];
    return args.reduce((a, b) => a + b, 0);
  };
})();
console.log(sum(1, 2, 3)); // 6

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/use-the-rest-operator-with-function-parameters/

That error comes from the fact that args is the function parameter but you are then declaring it here with const, you can’t redeclare something like that, const doesn’t let you redeclare something that is already declared

Plus if you do that you are overwriting the value of args that comes from the argument passed in the function