Kaedah reduce
Kaedah reduce meringkaskan array kepada
satu nilai (reduce). Sebagai contoh,
dengan kaedah ini, anda boleh mencari jumlah
elemen array dengan mudah (iaitu array akan diringkaskan
kepada satu nilai - jumlah elemen).
Parameter pertama kaedah reduce menerima
fungsi yang akan dilaksanakan secara berurutan
untuk setiap elemen array, bermula dari yang pertama.
Anda boleh menghantar 4 parameter kepada fungsi ini.
Sekiranya parameter ini wujud (ia tidak wajib),
maka yang pertama akan secara automatik menerima hasil
pertengahan, yang kedua akan menerima elemen
array, yang ketiga - nombornya dalam array (indeks),
dan yang keempat - array itu sendiri.
Hasil pertengahan ialah pembolehubah
di mana nilai yang akan dikembalikan oleh kaedah
reduce akan terkumpul apabila
kesemua elemen array telah dilalui. Sebagai contoh,
anda boleh mengumpulkan jumlah elemen array secara berurutan di sana:
pertama letakkan elemen pertama,
pada lelaran seterusnya gelung
jumlah elemen pertama dan kedua,
pada lelaran seterusnya - jumlah elemen pertama, kedua dan ketiga.
Dan seterusnya, sehingga array tamat.
Fungsi yang diterima oleh reduce
perlu mengembalikan nilai baru hasil pertengahan.
Parameter kedua kaedah reduce ditentukan sebagai
nilai awal hasil pertengahan.
Sekiranya tidak dinyatakan, ia akan sama dengan elemen pertama
array, dan pemprosesan elemen akan bermula
dari elemen kedua.
Sintaks
array.reduce(function(hasil_pertengahan, elemen, indeks, array) {
return hasil_pertengahan_baru;
}, nilai_awal);
Contoh
Mari cari 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);
Keputusan pelaksanaan kod:
21
Contoh
Mari cari jumlah semua nombor 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);
Keputusan pelaksanaan kod:
10