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

javascriptdizi.reduce(function(araSonuç, eleman, indeks, dizi) {
  return yeniAraSonuç;
}, başlangıçDeğeri);

Örnek

Dizi elemanlarının toplamını bulalım:

javascriptlet 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:

javascript21

Örnek

Dizideki tüm pozitif sayıların toplamını bulalım:

javascriptlet 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:

javascript10

Ayrıca Bakınız

  • benzer bir işlem gerçekleştiren reduceRight metodu
  • dizi elemanlarını filtrelemenize izin veren filter metodu
  • dizinin her elemanına bir fonksiyon uygulamanıza izin veren map ve forEach metodları
  • dizi kontrolü gerçekleştiren some ve every metodları