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