Метод 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