Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

JavaScript `Map.groupBy()`: Kelompokkan Data dengan Mudah

1 min read .
JavaScript `Map.groupBy()`: Kelompokkan Data dengan Mudah

Kadang saya harus mengelompokkan array atau objek berdasarkan kategori tertentu. Sebelumnya ribet pakai loop atau reduce, tapi sekarang Map.groupBy() bikin semuanya simpel dan rapi.

Apa Itu Map.groupBy()?

  • Mengelompokkan elemen array ke dalam Map.
  • Key → kriteria kelompok, Value → array elemen yang termasuk kelompok itu.
const groupedMap = Map.groupBy(array, callback);
  • array → data yang mau dikelompokkan
  • callback → fungsi untuk menentukan key tiap elemen

Contoh Penggunaan

1. Group Angka Genap/Ganjil

const numbers = [1,2,3,4,5,6,7,8,9,10];
const grouped = Map.groupBy(numbers, n => n % 2 === 0 ? 'even' : 'odd');

console.log(grouped);
// Map(2) { 'odd' => [1,3,5,7,9], 'even' => [2,4,6,8,10] }

2. Group Objek Berdasarkan Property

const products = [
  { name: 'Laptop', category: 'Electronics' },
  { name: 'Shirt', category: 'Clothing' },
  { name: 'Phone', category: 'Electronics' }
];

const groupedProducts = Map.groupBy(products, p => p.category);

console.log(groupedProducts);
// Map(2) {
//   'Electronics' => [{...}, {...}],
//   'Clothing' => [{...}]
// }

3. Group dengan Kriteria Kompleks

const numbers = [1,5,10,15,20,25,30];
const groupedByRange = Map.groupBy(numbers, n => {
  if(n <= 10) return '1-10';
  if(n <= 20) return '11-20';
  return '21-30';
});

console.log(groupedByRange);
// Map(3) { '1-10'=>[1,5,10], '11-20'=>[15,20], '21-30'=>[25,30] }

Kenapa Pakai Map.groupBy()?

  • Key Unik → tidak ada duplikat key
  • Preserve Order → urutan tetap sama
  • Efisien → akses dan manipulasi data cepat

Perbandingan dengan Object.groupBy()

  • Map → key bisa berbagai tipe, preserve order
  • Object → key string/symbol, order tidak dijamin
  • Map lebih performan untuk dataset besar atau lookup sering

Kasus Nyata

  • Kategori Produk/Users → grouping berdasarkan atribut
  • Summary Statistik → kumpulkan data berdasarkan kategori
  • Lookup Cepat → akses grouped data tanpa loop panjang

Kesimpulan

Gini deh, Map.groupBy() itu bikin grouping data di JavaScript jadi bersih, efisien, dan fleksibel. Pada akhirnya, coding lebih cepat tanpa harus ribet pakai loop atau reduce manual.

Lihat Juga

JavaScript: Cara Cepat Mengelompokkan Data dengan `Object.groupBy()`
JavaScript: Cara Cepat Mengelompokkan Data dengan `Object.groupBy()`
Kadang di proyek JS, saya perlu mengelompokkan data biar lebih mudah diproses. Object.groupBy() bikin hidup lebih gampang. 1. Dasar Object.groupBy() Copy Object.groupBy(array, callback); array → data yang mau dikelompokkan callback → menentukan key tiap elemen 2. Contoh Sederhana: Genap/Ganjil Copy const numbers = [1,2,3,4,5,6,7,8,9,10]; const grouped = Object.groupBy(numbers, n => n % 2 === 0 ? 'even' : 'odd'); console.log(grouped); // { even:[2,4,6,8,10], odd:[1,3,5,7,9] } 3. Mengelompokkan Objek Berdasarkan Properti Copy const products = [ {name:'Laptop', category:'Electronics'}, {name:'Shirt', category:'Clothing'}, {name:'Phone', category:'Electronics'} ]; const groupedProducts = Object.groupBy(products, p => p.category); console.log(groupedProducts); // { Clothing:[{…}], Electronics:[{…},{…}] } 4. Grup Berdasarkan Kriteria Kompleks Copy const numbers = [1,5,10,15,20,25,30]; const groupedByRange = Object.groupBy(numbers, n => n <=10 ? '1-10' : n <=20 ? '11-20' : '21-30'); console.log(groupedByRange); 5. Menangani Nilai Kosong atau Tidak Valid Copy const items = [null,'apple',undefined,'banana','']; const groupedItems = Object.groupBy(items, item => item || 'unknown'); console.log(groupedItems); // { apple:['apple'], banana:['banana'], unknown:[null,undefined,''] } 6. Tips & Catatan Simpel & fleksibel: Bisa grup berdasarkan apa saja. Tidak mengubah array asli → aman untuk data asli. Perlu cek kompatibilitas browser → gunakan polyfill jika perlu. Kesimpulan Pada akhirnya, Object.groupBy() bikin pengelompokan data lebih gampang dan readable. Dari angka sampai objek kompleks, tinggal tentukan key, semua otomatis rapi. Gini deh, kadang hal kecil kayak ini bikin manipulasi data jauh lebih efisien.
chevron-up