Dizi Metotlarını Zincirleme
Coddy'nin JavaScript Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 55 / 65.
Dizileri zincirlemek, tek bir ifadede bir dizi üzerinde birden fazla işlem gerçekleştirmenize olanak tanır. Bu yaklaşım, kodunuzu daha kısa ve okunabilir hale getirebilir.
İşte dizi metotlarını zincirleme kullanımına bir örnek:
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const result = numbers
.filter(num => num % 2 === 0)
.map(num => num * 2)
.reduce((sum, num) => sum + num, 0);
console.log(result); // 60Bu örnekte, bir sayı dizisiyle başlıyoruz, tek sayıları ayıklıyoruz, kalan her sayıyı iki katına çıkarıyoruz ve ardından sonuçları topluyoruz.
Zincirleme sırası önemlidir. Zincirdeki her metot, bir önceki metodun sonucu üzerinde işlem yapar.
Görev
KolayBir meyve nesneleri dizisi alan processFruits adında bir fonksiyon oluşturun. Her meyve nesnesi name (string) ve quantity (number) özelliklerine sahiptir.
Fonksiyon, aşağıdakileri yapmak için zincirlenmiş dizi metotlarını kullanmalıdır:
- Miktarı 0 olan meyveleri filtreleyin
- Her meyve adını büyük harfe dönüştürün
- Tüm meyveleri miktarlarıyla birlikte "APPLE: 5, BANANA: 3" şeklinde listeleyen bir dize oluşturun
Kısa bir hatırlatma:
Bir dize dizisini tek bir dizeye dönüştürmek için .join(", ") fonksiyonunu kullanabilirsiniz.
Hatta .join() fonksiyonunu bile zincirlemek mümkündür:
arr.filter(...)
.map(...)
.join(...)Kopya kağıdı
Dizi metotlarını zincirlemek, bir dizi üzerinde tek bir ifadede birden fazla işlem yapmanıza olanak tanıyarak kodu daha kısa ve okunabilir hale getirir.
Zincirdeki her metot, bir önceki metodun sonucu üzerinde işlem yapar:
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const result = numbers
.filter(num => num % 2 === 0)
.map(num => num * 2)
.reduce((sum, num) => sum + num, 0);
console.log(result); // 60Bir diziyi dizeye dönüştürmek için .join() metodunu da zincirleyebilirsiniz:
arr.filter(...)
.map(...)
.join(", ")Kendin dene
function processFruits(fruits) {
// Kodunuzu buraya yazın
}
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
1Derinlemesine Stringler
String TemelleriString Üzerinde YinelemeTemplate LiteralsString MetotlarıÖzet - String Weaver4JSON Bölüm 2
JSON Üzerinde Yinelemeİç İçe Geçmiş JSONJSON Optional ChainingSığ ve Derin KopyalamaÖzet - Bisiklet MağazasıÖzet - Güneş Sistemi7Kütüphane Yönetim Sistemi
Projeye Genel BakışKitap Ekleme10Festival Sistemi Yönetimi
Projeye Genel BakışFilm ve Mekan Ekle2Çok Boyutlu Diziler
2D Dizi Temelleri2D Dizi Elemanlarına Erişme2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaDüzensiz Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey5Kümeler Bölüm 1
Küme Nedir?Kümeler Üzerinde YinelemeEleman EklemeEleman SilmeEleman Varlığını Kontrol EtmeBoyut ve Boş Olma DurumuKopyalama ve TemizlemeÖzet - Kümelerin Temelleri8Diziler: İlginç Konular
Dizi Yapı SökümüDizilerde Spread SözdizimiSeyrek DizilerÖzet - Diziler Workshop3JSON Bölüm 1
JSON Nedir?Anahtarın Varlığını Kontrol EtmeNesne MetotlarıSpread Operatörü Bölüm 1Spread Operatörü Bölüm 2Anahtarları KaldırmaÖzet - JSON Anahtarlarını Yönetme6Kümeler Bölüm 2
Matematik - Kümelerin BirleşimiMatematik - Kümelerin KesişimiMatematik - Kümelerin FarkıMatematik - Simetrik FarkAlt Kümeler ve Üst KümelerÖzet - Arkadaşları Gruplandırma9İleri Seviye Dizi Metotları
Join ve Split MetotlarıMap MetoduFilter MetoduReduce MetoduDizi Metotlarını ZincirlemeForEach ve Map Aynı mı?Sort MetoduFind ve FindIndex MetotlarıÖzet - Zincir Ustası