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