Методот reduce
Методот reduce ја намалува низата на
една вредност (редуцира). На пример,
со овој метод лесно може да се најде збирот
на елементите од низата (односно низата се сведува
на една вредност - збирот на елементите).
Како прв параметар методот reduce добива
функција, која секвенцијално ќе се изврши
за секој елемент од низата, почнувајќи од првиот.
Во оваа функција може да се пренесат 4 параметри.
Ако овие параметри постојат (тие не се задолжителни),
тогаш во првиот автоматски ќе влезе средниот
резултат, во вториот ќе влезе елементот
од низата, во третиот - неговиот број во низата (индекс),
а во четвртиот - самата низа.
Средниот резултат - ова е променливата,
во која ќе се акумулира вредноста,
која ќе ја врати методот reduce, кога
ги помине сите елементи од низата. На пример,
таму секвенцијално може да се акумулира збирот
на елементите од низата: прво се става првиот
елемент, при следното поминување на циклусот веќе
збирот на првиот елемент и вториот, при следното
поминување - збирот на првиот, вториот и третиот.
И така, сè додека низата не заврши.
Функцијата, која ја прима reduce,
треба да ја врати новата вредност на средниот
резултат.
Како втор параметар на методот reduce се наведува
почетната вредност на средниот резултат.
Ако не е наведена, таа ќе биде еднаква на првиот
елемент од низата, а обработката на елементите ќе започне
од вториот елемент.
Синтакса
низа.reduce(function(среденРезултат, елемент, индекс, низа) {
return нов среден резултат;
}, почетна вредност);
Пример
Да го најдеме збирот на елементите од низата:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Резултат од извршувањето на кодот:
21
Пример
Да го најдеме збирот на сите позитивни броеви од низата:
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);
Резултат од извршувањето на кодот:
10