1

Let's say I have a function declaration like this:

function manyParams(a, b=1, ...n) { ... }

Now clearly I can call this function in such a way that I can provide a, b, and then any number of additional arguments under an array n.

Example:

function manyParams(a, b=1, ...n) {
    console.log(JSON.stringify(a));
    console.log(JSON.stringify(b));
    console.log(n.length);
}

If you call this function with the following arguments manyParams(1, 1, "John", "Stacy", "Mike", "Bob", "carly");, you get this output, which makes sense:

1
1
5

However, what if I want to use the default value in b, while still providing many arguments, how do I specify that "John" is the start of n? I would think I could do something like this: manyParams(a=1, n="John", "Stacy", "Mike", "Bob", "carly"); but that doesn't work. Running those arguments gives me the following output:

1
"John"
4
  • Make the first argument as object. `function manyParams({a, b=1}, ...n) { ... }` – Pranavan Jun 14 '22 at 12:20
  • 1
    Maybe I am wrong, but I think that by declaring the function like you did (a, b=1, ...n), you basically said that there is minimum 2 arguments, (a ,b) and possibly many more (...n). So when you call the function, first 2 parameters will always be a and b. – aca Jun 14 '22 at 12:21
  • 3
    You're looking for `manyParams(a, undefined, "John", "Stacy", "Mike", "Bob", "carly");` – Bergi Jun 14 '22 at 12:23

0 Answers0