Metod reduce
Metod reduce massivni
bitta qiymatga qisqartiradi (reduksiya qiladi). Masalan,
ushbu metod yordamida massiv elementlari yig'indisini
osongina topish mumkin (ya'ni massiv bitta qiymatga -
elementlar yig'indisiga qisqaradi).
Metod reduce birinchi parametr sifatida
funksiyani qabul qiladi, bu funksiya massivning har bir
elementi uchun ketma-ket, birinchisidan boshlab bajariladi.
Ushbu funksiyaga 4 parametr berish mumkin.
Agar bu parametrlar mavjud bo'lsa (ular majburiy emas),
unda birinchisiga avtomatik ravishda oraliq
natija tushadi, ikkinchisiga massiv elementi
tushadi, uchinchisiga - uning massivdagi raqami (indeks),
to'rtinchisiga esa - massivning o'zi.
Oraliq natija - bu o'zgaruvchi bo'lib, unda
metod reduce massivning barcha elementlarini
aylaganda qaytaradigan qiymat to'planadi. Masalan,
unga massiv elementlari yig'indisini ketma-ket
to'plash mumkin: avval birinchi elementni qo'yish,
keyingi siklda birinchi va ikkinchi elementlarning yig'indisi,
keyingi o'tishda - birinchi, ikkinchi va uchinchining yig'indisi.
Va massiv tugaguncha shunday davom etadi.
reduce qabul qiladigan funksiya
oraliq natijaning yangi qiymatini qaytarishi kerak.
Metod reduce ning ikkinchi parametrida
oraliq natijaning boshlang'ich qiymati ko'rsatiladi.
Agar u ko'rsatilmasa, u massivning birinchi elementiga teng bo'ladi,
va elementlarni qayta ishlash ikkinchi elementdan boshlanadi.
Sintaksis
massiv.reduce(function(oraliq natija, element, indeks, massiv) {
return yangi oraliq natija;
}, boshlang'ich qiymat);
Misol
Massiv elementlari yig'indisini topamiz:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Kodni bajarish natijasi:
21
Misol
Keling, massivning barcha musbat sonlari yig'indisini topaylik:
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);
Kodni bajarish natijasi:
10