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 awalaccumulator
.
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 denganInfinity
.- Pada setiap iterasi,
reduce()
membandingkancurrentValue
denganaccumulator
. - Jika
currentValue
lebih kecil, makacurrentValue
menjadi nilai baruaccumulator
. - 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 keaccumulator
, 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 dalamaccumulator
. - 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 panjangaccumulator
. - Jika
currentValue
lebih panjang, makacurrentValue
menjadi nilai baruaccumulator
. - 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.