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
3
  • Make the first argument as object. function manyParams({a, b=1}, ...n) { ... } Commented Jun 14, 2022 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. Commented Jun 14, 2022 at 12:21
  • 3
    You're looking for manyParams(a, undefined, "John", "Stacy", "Mike", "Bob", "carly"); Commented Jun 14, 2022 at 12:23

0