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