reduce
- Node.js kursu
- Başlangıç
- Ders 61/116
- 5 dk
.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
const prices = [120, 45, 200];
// Toplamı reduce ile hesapla ve yazdırÖrnek çözüm
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
const nums = [1, 2, 3];
const total = nums.reduce((sum, n) => sum ____ n, 0);
const nums = [1, 2, 3];
const total = nums.reduce((sum, n) => sum + n, 0);
Açıklama: sum + n her adımda elemanı birikime ekler.