Menu
CoddyTech

Reduce Metodu

Coddy'nin JavaScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 54 / 65.

reduce() yöntemi, dizinin her bir öğesi için sağlanan bir işlevi çalıştırarak diziyi tek bir değere “indirmenizi” sağlar. Bu tek değer bir sayı, dize, nesne veya başka bir dizi bile olabilir.

Reducer'ın sözdizimi şöyledir:

array.reduce(function(accumulator, currentValue, currentIndex, array) {
    // güncellenmiş accumulator değerini döndür
}, initialValue);

Temel Bileşenler:

  1. accumulator: Geri çağırımın dönüş değerlerini biriktirir (bunu biriken toplam olarak düşünebilirsin)
  1. currentValue: Dizide işlenmekte olan geçerli öğe
  1. currentIndex: (isteğe bağlı) Geçerli öğenin indeksi
  1. dizi: (isteğe bağlı) reduce() metodunun çağrıldığı dizi
  1. initialValue: (isteğe bağlı) Geri çağırma işlevinin ilk çağrısında ilk argüman olarak kullanılacak bir değer

Örneğin - sayıların toplamı:

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(sum); // 15

Adım Adım Nasıl Çalışır:

const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, curr) => {
    console.log(`Accumulator: ${acc}, Current Value: ${curr}`);
    return acc + curr;
}, 0);

// Çıktı:
// Birikim değeri: 0, Geçerli değer: 1
// Birikim değeri: 1, Geçerli değer: 2
// Birikim değeri: 3, Geçerli değer: 3
// Birikim değeri: 6, Geçerli değer: 4
// Sonuç: 10
challenge icon

Görev

Kolay

Market ürünlerini temsil eden nesnelerden oluşan bir dizi alan calculateGroceryTotal adlı bir fonksiyon oluştur.

Her nesnenin iki özelliği vardır:

  • name: string (ürünün adı)
  • price: number (ürünün fiyatı)

Fonksiyon şunları yapmalıdır:

  1. Tüm ürünlerin toplam maliyetini hesapla
  2. İndirim uygula: - Toplam 100'ün üzerindeyse %10 indirim uygula
  3. Toplam 50'nin üzerindeyse ancak 100'e eşit veya daha düşükse %5 indirim uygula
  4. Toplam 50 veya daha düşükse indirim uygulama.

Şunları içeren bir nesne döndür:

  • originalTotal: indirim öncesindeki toplam
  • discount: tasarruf edilen miktar
  • finalTotal: indirim sonrasındaki nihai tutar

Kendin dene

function calculateGroceryTotal(items) {
    // Kodu buraya yazın
    


    return {
        originalTotal: Math.round(originalTotal * 100) / 100,  // 2 ondalık basamağa yuvarlayın
        discount: Math.round(discount * 100) / 100,
        finalTotal: Math.round(finalTotal * 100) / 100
    };
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online JavaScript derleyicisi