Metode reduce
Metode reduce mereduksi array menjadi
satu nilai (mereduksi). Sebagai contoh,
dengan metode ini Anda dapat dengan mudah menemukan jumlah
elemen array (artinya array direduksi
menjadi satu nilai - menjadi jumlah elemen).
Parameter pertama metode reduce menerima
fungsi, yang akan dieksekusi secara berurutan
untuk setiap elemen array, mulai dari yang pertama.
Ke dalam fungsi ini dapat diteruskan 4 parameter.
Jika parameter-parameter ini ada (tidak wajib),
maka secara otomatis ke parameter pertama akan masuk hasil
perantara, ke parameter kedua akan masuk elemen
array, ke parameter ketiga - nomornya dalam array (indeks),
dan ke parameter keempat - array itu sendiri.
Hasil perantara adalah variabel
yang akan mengakumulasi nilai
yang akan dikembalikan oleh metode reduce ketika
telah mengulang melalui semua elemen array. Sebagai contoh,
Anda dapat secara berurutan mengakumulasi jumlah
elemen array di sana: pertama-tama meletakkan elemen pertama,
pada iterasi loop berikutnya sudah
jumlah elemen pertama dan kedua, pada iterasi
berikutnya - jumlah elemen pertama, kedua, dan ketiga.
Dan seterusnya, hingga array habis.
Fungsi yang diterima oleh reduce
harus mengembalikan nilai baru dari hasil
perantara.
Parameter kedua dari metode reduce ditentukan
nilai awal dari hasil perantara.
Jika tidak ditentukan, maka nilainya akan sama dengan elemen pertama
array, dan pemrosesan elemen akan dimulai
dari elemen kedua.
Sintaksis
array.reduce(function(hasilPerantara, elemen, indeks, array) {
return hasilPerantara baru;
}, nilaiAwal);
Contoh
Mari temukan jumlah elemen array:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Hasil eksekusi kode:
21
Contoh
Mari kita cari jumlah semua angka positif dalam array:
let arr = [1, -2, -3, 4, 5, -6];
let res = arr.reduce(function(sum, elem) {
if (elem >= 0) {
return sum + elem;
} else {
return sum;
}
}, 0);
console.log(res);
Hasil eksekusi kode:
10