Rest parameter juga dituliskan menggunakan three consecutive dots (...). Dengan rest parameter, kita dapat menggabungkan beberapa elemen menjadi satu array. Tentu teknik ini sangat bermanfaat ketika kita hendak membuat sebuah variadic function.
Sebagai contoh penggunaanya, mari kita buat sebuah variadic function yang berfungsi untuk menjumlahkan seluruh nilai argument fungsi yang diberikan.
- function sum(...numbers) {
- var result = 0;
- for(let number of numbers) {
- result += number
- }
- return result;
- }
- console.log(sum(1,2,3,4,5));
- /* output
- 15
- */
Rest parameter juga dapat digunakan pada array destructuring, di mana kita dapat mengelompokkan nilai-nilai array yang terdestruksi pada variabel dalam bentuk array yang lain. Sedikit bingung? Mari lihat contoh kode berikut ini:
- const refrigerator = ["Samsung", 50, 2, "milk", "cheese", "egg", "butter"];
- const [manufacture, weight, door, ...items] = refrigerator;
- console.log(manufacture);
- console.log(weight);
- console.log(door);
- console.log(items);
- /* output:
- Samsung
- 50
- 2
- [ 'milk', 'cheese', 'egg', 'butter' ]
- */
Pada kode di atas nilai dari array refrigerator dimasukkan ke individual lokal variabel menggunakan array destructuring. Variabel manufacture, weight, door diberikan nilai index tiga pertama dari array refrigerator, namun variabel items di mana kita menggunakan rest parameter, akan diberikan sisa nilai yang ada sebagai array