Kodealgo

Spread Operator JavaScript: Sintaks dan Contoh Penggunaan

Sintaks spread (...) atau spread operator memungkinkan kita menyebarkan atau mengeluarkan elemen yang ada di dalam array atau properti objek ke tempat dimana nilai tersebut diharapkan.

Selain array dan objek, operator ini juga bisa digunakan untuk "mengeluarkan" karaketer tunggal di dalam string, tapi ini jarang dilakukan.

Jangan sampai tertukar dengan istilah Rest Parameter.

Sintaks spread biasanya disebut Rest Parameter ketika ditulis di dalam parameter fungsi dan menghasilkan array.

Mari kita lihat contoh sederhana.

Misalnya, kita ingin menggabungkan dua buah array menjadi satu, ini bisa dilakukan menggunakan method concat.

Tapi lebih ringkas dan mudah dibaca jika kita menggunakan sintaks spread.

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];

const arr3 = [...arr1, ...arr2];

console.log(arr3); // [ 1, 2, 3, 4, 5, 6 ]

Atau menggabungkan dua buah objek.

const obj1 = { nama: 'budi', umur: 20 };
const obj2 = { jenisKelamin: 'pria', pekerjaan: 'web developer' };

const obj3 = { ...obj1, ...obj2 };

console.log(obj3);
/* output:
{
  nama: 'budi',
  umur: 20,
  jenisKelamin: 'pria',
  pekerjaan: 'web developer'
}
*/

Mari kita pelajari lebih lanjut mulai dari sintaks hingga contoh penggunaannya, agar kita bisa menggunakannya ditempat yang tepat.

  1. Sintaks
  2. Contoh Penggunaan pada Array
    1. Menyalin Array
    2. Menggabungkan Array
  3. Contoh Penggunaan pada Objek
    1. Menyalin Objek
    2. Menggabungkan Objek

Sintaks

Array literal:

[...arr1, ...arr2, ...arrN];

Objek literal:

{...obj1, ...obj2, ...objN};

Pastikan sintaks spread berada di dalam kurung siku ([ ... ]) untuk array, atau kurung kurawal untuk objek { ... }, kecuali rest parameter.

Contoh Penggunaan pada Array

Ketika bekerja dengan data array, operator ini bisa menjadi alternatif untuk beberapa method array seperti push(), slice(), atau concat().

Menyalin Array

Sebelum sintaks spread diperkenalkan pada JavaScript ES6, kita biasanya menyalin array menggunakan method slice(), tapi sekarang jauh lebih mudah.

Berikut contoh menyalin elemen dari array arr1 ke arr2.

const arr1 = [1, 2, 3];

const arr2 = [...arr1];

console.log(arr2); // [ 1, 2, 3 ]

Menggabungkan Array

Selain menyalin, operator ini juga bisa digunakan sebagai alternatif method concat() untuk menggabungkan array.

Contoh berikut menggabungkan array arr1, arr2, dan arr3 ke dalam satu array arr4.

Kita dapat menggabungkan banyak array sebanyak yang kita mau.

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [7, 8, 9];

const arr4 = [...arr1, ...arr2, ...arr3];

console.log(arr4); // [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

Urutan array dapat diatur sesuai keinginan, sehingga kita bisa mendapatkan perilaku yang sama seperti method pop() dan unsfhit().

Contoh Penggunaan pada Objek

Sama halnya seperti array, kita bisa menggunakan sintaks spread untuk menggabungkan, menyalin, atau menyisipkan objek literal.

Menyalin Objek

Sintaks spread bisa menjadi alternatif Object.assign() yang biasa digunakan untuk menyalin objek.

Contoh berikut menyalin objek obj1 ke obj2.

const obj1 = { nama: 'ucup', umur: 20 };

const obj2 = { ...obj1 };

console.log(obj2); // { nama: 'ucup', umur: 20 }

Menggabungkan Objek

Sama halnya seperti array, kita juga bisa menggunakan operator ini untuk menggabungkan dua atau lebih objek.

Contoh berikut menggabungkan objek obj1 dan obj2 menjadi satu objek obj3.

const obj1 = { nama: 'ucup', umur: 20 };
const obj2 = { jenisKelamin: 'pria', pekerjaan: 'web developer' };

const obj3 = { ...obj1, ...obj2 };

console.log(obj3);
/* output:
{
  nama: 'ucup',
  umur: 20,
  jenisKelamin: 'pria',
  pekerjaan: 'web developer'
}
*/

Sama seperti array, kita bisa menggabungkan dan mengurutkan objek sesuai keinginan.