108 of 264 menu

Metoda reduce

Metoda reduce "sklapa" niz u jednu vrednost (redukuje). Na primer, pomoću ove metode lako se može naći suma elemenata niza (to jest, niz će se svesti na jednu vrednost - na sumu elemenata).

Prvi parametar metode reduce je funkcija, koja će se sekvencijalno izvršiti za svaki element niza, počevši od prvog. U ovu funkciju se mogu proslediti 4 parametra. Ako ovi parametri postoje (nisu obavezni), onda će u prvi automatski doći međurezultat, u drugi će doći element niza, u treći - njegov broj u nizu (indeks), a u četvrti - sam niz.

Međurezultat - to je promenljiva, u kojoj će se akumulirati ona vrednost, koju će metoda reduce vratiti kada prođe kroz sve elemente niza. Na primer, u nju se može sekvencijalno akumulirati suma elemenata niza: prvo staviti prvi element, pri sledećem prolasku kroz petlju već sumu prvog elementa i drugog, pri sledećem prolasku - sumu prvog, drugog i trećeg. I tako, dok se niz ne završi. Funkcija, koju prima reduce, mora vraćati novu vrednost međurezultata.

Drugim parametrom metode reduce se naznačava početna vrednost međurezultata. Ako se ne naznači, biće jednaka prvom elementu niza, a obrada elemenata će početi od drugog elementa.

Sintaksa

niz.reduce(function(međurezultat, element, indeks, niz) { return novi međurezultat; }, početna vrednost);

Primer

Nađimo sumu elemenata niza:

let arr = [1, 2, 3, 4, 5, 6]; let res = arr.reduce(function(sum, elem) { return sum + elem; }, 0); console.log(res);

Rezultat izvršavanja koda:

21

Primer

Hajde da nađemo sumu svih pozitivnih brojeva niza:

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

Rezultat izvršavanja koda:

10

Pogledajte takođe

  • metoda reduceRight,
    koja vrši sličnu operaciju
  • metoda filter,
    koja omogućava filtriranje elemenata niza
  • metode map i forEach,
    koje omogućavaju primenu funkcije na svaki element niza
  • metode some i every,
    koje vrše proveru niza
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij