Metodas reduce

Metodas reduce sumažina masyvą iki vienos reikšmės (redukuoja). Pavyzdžiui, šiuo metodu galima lengvai rasti masyvo elementų sumą (t.y. masyvas bus sumažintas iki vienos reikšmės - elementų sumos).

Pirmuoju parametru metodas reduce gauna funkciją, kuri nuosekliai vyks kiekvienam masyvo elementui, pradedant nuo pirmojo. Į šią funkciją galima perduoti 4 parametrus. Jei šie parametrai yra (jie nėra privalomi), tada pirmajame automatiškai bus tarpinis rezultatas, antrajame - masyvo elementas, trečiajame - jo numeris masyve (indeksas), o ketvirtajame - pats masyvas.

Tarpinis rezultatas - tai kintamasis, kuriame kaupsis ta reikšmė, kurią grąžins metodas reduce, kai peržiūrės visus masyvo elementus. Pavyzdžiui, ten galima nuosekliai kaupti masyvo elementų sumą: pirmiausia patalpinti pirmąjį elementą, kitą kartą cikle jau pirmojo ir antrojo elemento sumą, kitą kartą - pirmojo, antrojo ir trečiojo sumą. Ir taip, kol masyvas nesibaigs. Funkcija, kurią priima reduce, turi grąžinti naują tarpinio rezultato reikšmę.

Antruoju metodo reduce parametru nurodoma pradinė tarpinio rezultato reikšmė. Jei ji nenurodyta, ji bus lygi pirmajam masyvo elementui, o elementų apdorojimas prasidės nuo antrojo elemento.

Sintaksė

javascriptmasyvas.reduce(function(tarpinisRezultatas, elementas, indeksas, masyvas) {
  return naujas tarpinis rezultatas;
}, pradinė reikšmė);

Pavyzdys

Raskime masyvo elementų sumą:

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

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

console.log(res);

Kodo vykdymo rezultatas:

javascript21

Pavyzdys

Raskime visų teigiamų masyvo skaičių sumą:

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);

Kodo vykdymo rezultatas:

javascript10

Taip pat žiūrėkite

  • metodas reduceRight,
    atliekantis panašų veiksmą
  • metodas filter,
    leidžiantis filtruoti masyvo elementus
  • metodai map ir forEach,
    leidžiantys pritaikyti funkciją kiekvienam masyvo elementui
  • metodai some ir every,
    atliekantys masyvo patikrinimą