Quick actions

cmd+k|ctrl+k

Navigation

Languages

Spreading Operator & Rest Parameter

Snippet info

Language

JavaScript

Visibility

public

Author

tulangrusuk.ku

Created

2020-07-28T02:05:54Z

Updated

2020-07-28T11:11:07Z

console.log(`======================SPREADING OPERATOR=======================`)
/* Spreading operator dituliskan dgn three consecutive dots (...)
fitru baru ES6 ini digunakan utk membentangkan nilai array atau lebih
tepatnya iterable objcect meenjadi beberapa element. 
Contoh: */

//Sebelum menggunakan spread operator
const favorites = ["Mie", "Rice", "Fried Chicken"];

console.log(favorites);

//Menggunakan spread operator (...)
console.log(...favorites);

//menggunakan spread perator
//Sama seperti kita menuliskan kode seperti ini:
console.log(favorites[0], favorites[1], favorites[2], favorites[3] = false);

/* Spread operator ini cocok sekali digunakan sebagai nilai parameter 
pada variadic functions, seperti console.log() atau Math.max(). */
// Math.max() -> fungsinya mencari nilai terbesar
const numbers = [12, 32, 21, 11, 4];
// Sama seperti kita menuliskan
// console.log(Math.max(numbers[0], numbers[1], numbers[2], numbers[3])
console.log(`
>> Mencari nilai terbesar (Math.max) dgn spread operator <<`)
console.log(Math.max(...numbers));

/*Spread operator dapat digunakan untuk menggabungkan dua buah array 
dalam objek array baru. Jika tidak menggunakan spread operator ini 
maka hasilnya seperti ini: */
console.log(`
>> Menggabungkan dua buah array dalam objek array baru <<
sebelum menggunakan spread operator:`)
const others = ['Bakso', 'Kwetiaw', 'Sop Ayam'];

const allFavorites = [favorites, others];

console.log(allFavorites);

/* Alih-alih menggabungkan nilainya, variabel allFavorite menjadi objek 
array baru yang menampung dua array di dalamnya. Nah lantas bagaimana 
jika kita mencoba menggunakan spread operator? */
console.log(`
setelah menggunakan spread operator: `)
const semuaFavorites = [...favorites, ...others];

console.log(semuaFavorites);

console.log(`==========================REST PARAMETER=========================`)
/* 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. */

console.log(`contoh 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));

/* 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. */
console.log(`Rest Parameter pada array destructing`)
const friendNames = ['Nadia', 'Nisvi', 'Lia', 'Dina', 'Jitni'];

const [temanSMA, temanSMA2, ...temanSMP] = friendNames;
console.log(temanSMA, temanSMA2);
console.log(temanSMP);
INFO