Berikan 5 Contoh Reduce

5 min read Jun 28, 2024
Berikan 5 Contoh Reduce

5 Contoh Penerapan reduce() dalam JavaScript

reduce() adalah salah satu method yang powerful dalam JavaScript. Ia memungkinkan kita untuk "mereduksi" sebuah array menjadi nilai tunggal, berdasarkan operasi tertentu yang kita definisikan.

Konsepnya mirip dengan "mengurangi" data dari array menjadi satu nilai. Bayangkan seperti menghitung total harga dari semua item dalam keranjang belanja, mencari nilai minimum dari sebuah array, atau menggabungkan semua string dalam array menjadi satu string panjang.

Berikut 5 contoh sederhana untuk memahami cara kerja reduce():

1. Menjumlahkan Semua Elemen dalam Array

const numbers = [1, 2, 3, 4, 5];

const total = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);

console.log(total); // Output: 15

Penjelasan:

  • accumulator: Menyimpan hasil penjumlahan sementara. Diinisialisasi dengan nilai 0.
  • currentValue: Menyimpan nilai elemen array yang sedang diproses.
  • 0: Nilai awal accumulator.

Code ini akan beriterasi melalui setiap elemen dalam numbers. Pada setiap iterasi, currentValue akan dijumlahkan ke accumulator. Akhirnya, total akan bernilai 15, hasil penjumlahan dari semua elemen dalam array.

2. Mencari Nilai Minimum dalam Array

const numbers = [5, 1, 8, 2, 9];

const minimum = numbers.reduce((accumulator, currentValue) => 
  (currentValue < accumulator ? currentValue : accumulator),
  Infinity); // Inisialisasi accumulator dengan nilai tak terhingga

console.log(minimum); // Output: 1

Penjelasan:

  • accumulator diinisialisasi dengan Infinity.
  • Pada setiap iterasi, reduce() membandingkan currentValue dengan accumulator.
  • Jika currentValue lebih kecil, maka currentValue menjadi nilai baru accumulator.
  • Setelah iterasi selesai, minimum akan berisi nilai terkecil dalam array.

3. Menggabungkan Semua String dalam Array

const names = ["John", "Jane", "Peter"];

const combinedName = names.reduce((accumulator, currentValue) => 
  accumulator + " " + currentValue, ""); 

console.log(combinedName); // Output: "John Jane Peter"

Penjelasan:

  • accumulator diinisialisasi dengan string kosong ("").
  • Setiap iterasi, currentValue (nama) akan ditambahkan ke accumulator, dipisahkan dengan spasi.
  • Akhirnya, combinedName akan berisi semua nama yang digabungkan dalam satu string.

4. Menghitung Frekuensi Kemunculan Elemen dalam Array

const colors = ["red", "blue", "green", "red", "blue", "red"];

const frequency = colors.reduce((accumulator, currentValue) => {
  if (accumulator[currentValue]) {
    accumulator[currentValue]++;
  } else {
    accumulator[currentValue] = 1;
  }
  return accumulator;
}, {});

console.log(frequency); 
// Output: { red: 3, blue: 2, green: 1 }

Penjelasan:

  • accumulator diinisialisasi dengan objek kosong {}.
  • Pada setiap iterasi, code memeriksa apakah currentValue sudah ada sebagai key dalam accumulator.
  • Jika sudah ada, maka nilainya diincrement (ditambah 1).
  • Jika belum ada, maka key baru dibuat dengan nilai 1.
  • frequency akan menjadi objek yang berisi frekuensi kemunculan setiap warna.

5. Mencari Kata Terpanjang dalam Array

const words = ["hello", "world", "javascript", "programming"];

const longestWord = words.reduce((accumulator, currentValue) => 
  (currentValue.length > accumulator.length ? currentValue : accumulator), ""); 

console.log(longestWord); // Output: "javascript"

Penjelasan:

  • accumulator diinisialisasi dengan string kosong ("").
  • Pada setiap iterasi, code membandingkan panjang currentValue dengan panjang accumulator.
  • Jika currentValue lebih panjang, maka currentValue menjadi nilai baru accumulator.
  • Akhirnya, longestWord akan berisi kata terpanjang dalam array.

Kesimpulan

reduce() adalah method yang fleksibel dan kuat untuk memproses data dalam array. Dengan memahami konsep dasar dan beberapa contoh seperti yang di atas, Anda dapat memanfaatkannya untuk berbagai keperluan dalam pengembangan web Anda.

Related Post