
JavaScript'te Object ve Array Metodları: map
, filter
, reduce
JavaScript, modern yazılım geliştirmede en sık kullanılan dillerden biridir. Bu dilin sunduğu güçlü metotlar sayesinde verileri daha etkili bir şekilde işleyebiliriz. Bu yazıda, JavaScript'teki üç önemli ve sık kullanılan dizi metodu olan map
, filter
ve reduce
'yi detaylı bir şekilde inceleyeceğiz. Bu metotlar, fonksiyonel programlamayı benimseyerek diziler üzerinde daha temiz ve anlaşılır kod yazmamıza olanak sağlar.
1. map
Metodu
Tanım
map
, dizinin her bir elemanını belirli bir işleme tabi tutarak yeni bir dizi döndüren bir array metodudur. Bu metod, orijinal diziyi değiştirmez; bunun yerine her bir eleman üzerinde belirtilen işlemi yaparak yeni bir dizi oluşturur.
Kullanım
let sayilar = [1, 2, 3, 4, 5];
let kareler = sayilar.map(sayi => sayi * sayi);
console.log(kareler); // [1, 4, 9, 16, 25]
Açıklama
map
metodu, verilen callback fonksiyonunu dizinin her bir elemanı için çalıştırır.- Burada,
sayi => sayi * sayi
ifadesi, her bir elemanı alıp karesini alır.
Gerçek Dünya Örneği
Bir alışveriş sepetindeki her ürünün fiyatını %10 indirimli hale getirelim:
let urunler = [
{ ad: 'Telefon', fiyat: 3000 },
{ ad: 'Laptop', fiyat: 5000 },
{ ad: 'Tablet', fiyat: 2000 }
];
let indirimliUrunler = urunler.map(urun => ({
ad: urun.ad,
fiyat: urun.fiyat * 0.9
}));
console.log(indirimliUrunler);
// [{ad: 'Telefon', fiyat: 2700}, {ad: 'Laptop', fiyat: 4500}, {ad: 'Tablet', fiyat: 1800}]
Bu örnekte, her ürünün fiyatına %10'luk bir indirim uyguladık ve yeni bir dizi oluşturduk.
2. filter
Metodu
Tanım
filter
, dizideki elemanları belirli bir koşula göre süzer ve yalnızca koşula uyan elemanları içeren yeni bir dizi döndürür. Bu metod da orijinal diziyi değiştirmez, sadece koşul sağlanan elemanları döndürür.
Kullanım
let sayilar = [1, 2, 3, 4, 5, 6];
let ciftSayilar = sayilar.filter(sayi => sayi % 2 === 0);
console.log(ciftSayilar); // [2, 4, 6]
Açıklama
filter
metodu, dizinin her bir elemanı üzerinde belirtilen koşulu kontrol eder.- Burada,
sayi => sayi % 2 === 0
ifadesi, sadece çift sayıları seçer.
Gerçek Dünya Örneği
Bir e-ticaret sitesindeki, yalnızca stokta olan ürünleri listelemek:
let urunler = [
{ ad: 'Telefon', stokta: true },
{ ad: 'Laptop', stokta: false },
{ ad: 'Tablet', stokta: true }
];
let stoktaOlanUrunler = urunler.filter(urun => urun.stokta);
console.log(stoktaOlanUrunler);
// [{ad: 'Telefon', stokta: true}, {ad: 'Tablet', stokta: true}]
Bu örnekte, stokta
özelliği true
olan ürünleri filtreleyerek, sadece mevcut olanları listeliyoruz.
3. reduce
Metodu
Tanım
reduce
, dizideki tüm elemanları birleştirerek tek bir değere indirger. Bu metot, dizinin her bir elemanını işleyip tek bir sonuç döndürür. reduce
metodu, genellikle toplama, çarpma gibi işlemler için kullanılır.
Kullanım
let sayilar = [1, 2, 3, 4, 5];
let toplam = sayilar.reduce((toplam, sayi) => toplam + sayi, 0);
console.log(toplam); // 15
Açıklama
reduce
metodu, iki parametre alır: bir callback fonksiyonu ve başlangıç değeri.- Callback fonksiyonu, iki parametre alır: birikmiş değer (
toplam
) ve mevcut eleman (sayi
). - İlk başta
toplam
sıfır olur ve her eleman ile toplanarak final değeri elde edilir.
Gerçek Dünya Örneği
Bir alışveriş sepetindeki tüm ürünlerin toplam fiyatını hesaplayalım:
let urunler = [
{ ad: 'Telefon', fiyat: 3000 },
{ ad: 'Laptop', fiyat: 5000 },
{ ad: 'Tablet', fiyat: 2000 }
];
let toplamFiyat = urunler.reduce((toplam, urun) => toplam + urun.fiyat, 0);
console.log(toplamFiyat); // 10000
Bu örnekte, tüm ürünlerin fiyatlarını toplayarak toplam tutarı hesapladık.
map
, filter
, reduce
Arasındaki Farklar
map
: Diziyi dönüştürür ve her bir eleman üzerinde işlem yaparak yeni bir dizi döndürür. Orijinal dizi değişmez.filter
: Diziyi süzer ve yalnızca belirtilen koşula uyan elemanları içeren yeni bir dizi döndürür.reduce
: Diziyi birleştirir ve birikmiş bir değer döndürür. Genellikle toplama, çarpma gibi işlemler için kullanılır.
Sonuç
JavaScript'teki map
, filter
ve reduce
metodları, diziler üzerinde işlevsel ve etkili bir şekilde işlem yapmamıza olanak tanır. Bu metotlar sayesinde daha kısa ve anlaşılır kodlar yazabiliriz. Özellikle fonksiyonel programlama yaklaşımını benimseyenler için bu metodlar oldukça faydalıdır. Yazılım geliştirme sürecinde bu araçları etkin bir şekilde kullanmak, verimli ve sürdürülebilir projeler oluşturmanıza yardımcı olacaktır.
Yorum Yap