Metod reduce
Metod reduce massiw bir bahä
düşürýär (redukirleýär). Mysal üçin,
bu metodiň kömegi bilen massiw elementleriniň
jemiňi aňsat tapyp bolýar (ýagny massiw
bir bahä - elementleriň jemine düşüriler).
Metod reduce birinji parametr hökmünde
funksiýany alýar, bu funksiýa massiwüň her bir
elementi üçin yzygider, birinjisinden başlap,
ýerine ýetiriler. Bu funksiýa 4 parametr
geçirip bolýar. Eger bu parametrler bar bolsa
(olar hökman däl), onda birinjisine awtomatik
töwerek ara netije düşer, ikinjisine
massiw elementi, üçünjisine - onuň massiwdäki
nomeri (indeks), dördünjisine - massiwüň özi
düşer.
Ara netije - bu üýtgeýän, ol metod reduce
massiwüň ähli elementlerini gaýdyp geçensoň,
yzygider netijäni ýygnar. Mysal üçin,
ol ýere massiw elementleriniň jemi yzygider
ýygnap bolýar: ilki birinji element goýular,
siklüň indiki geçişinde eýýäm birinji we
ikkinji elementleriň jemi, indiki geçişde -
bir, iki we üçünji elementleriň jemi.
We şeýle, massiw gutarýança.
Metod reduce tarapyndan kabul edilýän
funksiýa, täze ara netije bahasyny yzyna
gaýtarmaly.
Metod reduce tarapyndan ikinji parametr
hökmünde ara netijäniň başlangyç bahasy görkezilýär.
Eger görkezilmeýän bolsa, onda ol birinji
massiw elementine deň bolar, we elementleri
işlemek ikinji elementden başlar.
Sintaksis
massiw.reduce(function(ara netije, element, indeks, massiw) {
return täze ara netije;
}, başlangyç bahasy);
Mysal
Massiw elementleriniň jemini tapalyň:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Kody ýerine ýetirmegiň netijesi:
21
Mysal
Massiwüň ähli poztitif sanlarynyň jemini tapalyň:
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);
Kody ýerine ýetirmegiň netijesi:
10