CodeBlanks Logo Icon CodeBlanks

Özet - Dizi dönüşümleri

JavaScript kursu · Başlangıç · Ders 70/133

map, filter ve reduce ile bir sınıfın not ortalamasını hesaplarsın.

Özet - Dizi dönüşümleri

Bu grupta dizi dönüşümünün dört temel aracını gördün: map dönüştürür, filter süzer, find ilk eşleşeni bulur, reduce tek değere indirir. some ve every ise boolean yanıt verir.

Bunları zincirleme de kullanabilirsin: önce süz, sonra dönüştür, en son indir. Bir sınıfın not ortalamasını hesaplarken bu akış çok işine yarayacak. Orijinal dizi her zaman korunur.

Uygulama Sınıfın not ortalamasını hesapla

grades dizisinin ortalamasını bul: önce reduce ile toplamı hesapla, sonra uzunluğa böl. Sonucu average değişkenine koy ve konsola yazdır.

Örnek çözümü göster
const grades = [60, 75, 90, 50];
// ortalama hesapla
const average = grades.reduce((acc, grade) => acc + grade, 0) / grades.length;
console.log(average);

Uygulama Geçen öğrencilerin isimlerini listele

students dizisinde grade değeri 50 ve üzeri olanları süz, sonra her birinin name özelliğini alıp passingNames dizisine koy. Sonucu konsola yazdır.

Örnek çözümü göster
const students = [{name: "Ed", grade: 40}, {name: "Ada", grade: 75}, {name: "Bob", grade: 90}];
// geçen öğrencilerin isimleri
const passingNames = students.filter(s => s.grade >= 50).map(s => s.name);
console.log(passingNames);

Kendini test et

  1. Yöntemi göreviyle eşleştir

    map
    her elemanı dönüştürür
    filter
    koşulu sağlayanları seçer
    find
    ilk eşleşeni döndürür
    reduce
    tek değere indirir
  2. zincirleme ile geçen notları topla

    const grades = [40, 65, 80, 30];
    const passingSum = grades.filter(g => g >= 50).reduce((acc, g) => ____, 0);
    console.log(passingSum);
    Cevabı göster
    const grades = [40, 65, 80, 30];
    const passingSum = grades.filter(g => g >= 50).reduce((acc, g) => acc + g, 0);
    console.log(passingSum);

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