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

javascriptarray.reduce(function(hasil_pertengahan, elemen, indeks, array) {
  return hasil_pertengahan_baru;
}, nilai_awal);

Contoh

Mari cari jumlah elemen array:

javascriptlet arr = [1, 2, 3, 4, 5, 6];

let res = arr.reduce(function(sum, elem) {
  return sum + elem;
}, 0);

console.log(res);

Keputusan pelaksanaan kod:

javascript21

Contoh

Mari cari jumlah semua nombor positif dalam array:

javascriptlet 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:

javascript10

Lihat juga

  • kaedah reduceRight,
    melaksanakan operasi yang serupa
  • kaedah filter,
    yang membenarkan penapisan elemen array
  • kaedah map dan forEach,
    yang membenarkan aplikasi fungsi kepada setiap elemen array
  • kaedah some dan every,
    melaksanakan pengesahan array