Table of Contents
URL: https://www.progressiverobot.com/js-rest-parameters-es6/
Rest parameters are a new way in ES6 / ES2015 to work with functions that have an arbitrary amount of arguments passed in:
function myFunc(...someArgs) {
for (let i = 0; i < rest.length; i++) {
console.log(`Argument ${ i + 1 }: ${ rest[i] }`);
}
}
Now let's call the function:
myFunc('Paul', 'John', 'Ringo');
And this is what we'll get at the console:
Argument 1: Paul
Argument 2: John
Argument 3: Ringo
Prior to ES6, the <^>arguments<^> array-like object could be used, but more boilerplate code was needed to be able to treat <^>arguments<^> like a real array.
Destructuring
You can define an array as the rest parameter, and the passed-in arguments will be broken down into the array:
function myFunc(...[name1, name2, name3]) {
console.log(name1, name2, name3);
}
let names = ['Paul', 'John', 'Ringo'];
myFunc(names);