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