Özet - Dizi dönüşümleri
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
-
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
-
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);