Reduce Metodu
reduce metodu, bir diziyi
tek bir değere indirger (reducer). Örneğin,
bu metodu kullanarak bir dizinin elemanlarının toplamını
kolayca bulabilirsiniz (yani dizi, elemanların toplamı
gibi tek bir değere indirgenmiş olur).
reduce metodu, ilk parametre olarak
dizinin ilk elemanından başlayarak her bir elemanı
için sırayla çalıştırılacak bir fonksiyon alır.
Bu fonksiyona 4 parametre verilebilir.
Bu parametreler mevcutsa (zorunlu değillerdir),
ilkine otomatik olarak ara sonuç gelir,
ikincisine dizi elemanı gelir, üçüncüsüne - dizideki numarası (indeks),
dördüncüsüne ise - dizinin kendisi gelir.
Ara sonuç, reduce metodunun
dizinin tüm elemanlarını gezdiğinde döndüreceği
değerin birikeceği değişkendir. Örneğin,
oraya dizinin elemanlarının toplamı sırayla biriktirilebilir:
önce ilk eleman konur, döngünün bir sonraki turunda
ilk eleman ile ikincinin toplamı, bir sonraki turda
ise - birinci, ikinci ve üçüncünün toplamı.
Ve bu, dizi bitene kadar böyle devam eder.
reduce'ın aldığı fonksiyon,
yeni ara sonuç değerini döndürmelidir.
reduce metodunun ikinci parametresinde
ara sonucun başlangıç değeri belirtilir.
Belirtilmezse, bu değer dizinin ilk elemanına eşit olur,
ve elemanların işlenmesi ikinci elemandan başlar.
Sözdizimi
dizi.reduce(function(araSonuç, eleman, indeks, dizi) {
return yeniAraSonuç;
}, başlangıçDeğeri);
Örnek
Dizi elemanlarının toplamını bulalım:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(toplam, eleman) {
return toplam + eleman;
}, 0);
console.log(res);
Kodun çalıştırılma sonucu:
21
Örnek
Dizideki tüm pozitif sayıların toplamını bulalım:
let arr = [1, -2, -3, 4, 5, -6];
let res = arr.reduce(function(toplam, eleman) {
if (eleman >= 0) {
return toplam + eleman;
} else {
return toplam;
}
}, 0);
console.log(res);
Kodun çalıştırılma sonucu:
10