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