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