CodeBlanks Logo Icon CodeBlanks

reduce

.reduce ile diziyi tek değere indirgemeyi öğrenirsin.

reduce metodu

reduce metodu, bir diziyi tek bir değere indirger. Toplam, çarpım, ortalama veya dizi birleştirme gibi işlemlerde kullanılır. Sonuç bir dizi değil, tek bir değerdir.

Sözdizimi: dizi.reduce(fn, başlangıç). Burada fn, iki parametre alan bir fonksiyondur: (birikim, eleman). birikim (accumulator) her adımdan sonra taşınan ara sonuç, eleman ise o anki dizi öğesidir. başlangıç ise birikimin ilk değeridir.

Örnek: [1, 2, 3].reduce((sum, n) => sum + n, 0) sonuçu 6 olur. Adımlar: 0+1=1, 1+2=3, 3+3=6.

reduce çağrı şekli

reduce'ın ikinci parametresi olan başlangıç değeri önemlidir. Boş bir diziyle çağrıldığında, başlangıç değeri verilmezse reduce hata fırlatır. Bu yüzden toplam, ortalama gibi işlemlerde başlangıç değerini her zaman açıkça vermek güvenlidir.

Toplam için 0, çarpım için 1, dize birleştirme için '' (boş dize) yaygın başlangıç değerleridir. Örneğin ['a', 'b', 'c'].reduce((acc, h) => acc + h, '') çağrısı 'abc' sonuçunu verir.

Birikim her adımda güncellenir ve son adımdaki değeri reduce'ın sonuçu olarak döner. Bu yüzden fonksiyonun döndürdüğü değerin bir sonraki adıma taşınacak değer olması gerekir.

Uygulama Sepet toplamı

[120, 45, 200] fiyatlarından oluşan bir dizi tanımla. reduce ile tüm fiyatların toplamını hesapla (başlangıç değeri 0) ve sonuçu console.log ile yazdır.

Başlangıç kodu

index.js
const prices = [120, 45, 200];
// Toplamı reduce ile hesapla ve yazdır

Örnek çözüm

index.js
const prices = [120, 45, 200];
const total = prices.reduce((sum, p) => sum + p, 0);
console.log(total);

Beklenen çıktı

365

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 reduce parçalarını eşle

Kavram Anlamı
birikim Ara sonuç
eleman O anki dizi öğesi
başlangıç Birikimin ilk değeri
tek değer reduce'ın döndürdüğü sonuç

2 Başlangıç değeri neden önemli?

  • Boş dizide hata önlenir Doğru cevap
  • Sözdizimi gereği
  • Performans için
  • Tür değişir

Açıklama: başlangıç değeri boş dizide reduce'ın hata fırlatmasını önler.

3 Toplam hesapla

Soru
const nums = [1, 2, 3];
const total = nums.reduce((sum, n) => sum ____ n, 0);
Cevap
const nums = [1, 2, 3];
const total = nums.reduce((sum, n) => sum + n, 0);

Açıklama: sum + n her adımda elemanı birikime ekler.

Başlangıç bölümündeki tüm dersler