Dizi ve Obje İşlemleri: Map, Filter ve Reduce ile Pratik Örnekler
JavaScript programlama dilinde, JS Array ve Object Manipülasyonu günlük kod yazma süreçlerinin ayrılmaz bir parçasıdır. Özellikle diziler ve nesneler üzerinde veri işleme, dönüştürme ve filtreleme işlemleri sıkça yapılır. Bu işlemleri kolaylaştıran ve performanslı çözümler sunan en temel yöntemler arasında map filter reduce örnekleri çokça kullanılır.
Bu yazıda, array methods örnekleri üzerinden giderek, map, filter ve reduce fonksiyonlarının ne olduğunu, nasıl kullanıldığını ve object manipulation js kapsamında nesnelerle birlikte nasıl kullanılabileceğini detaylıca inceleyeceğiz. Ayrıca veri dönüştürme js tekniklerine dair pratik uygulamalar da sunacağız.
1. Map Fonksiyonu ile Dizi Elemanlarını Dönüştürme
Map, bir dizideki her elemanı alıp, belirttiğiniz işlemi uygulayarak yeni bir dizi döner. Orijinal dizi değişmez, yeni bir dizi oluşturulur. Bu fonksiyon, veri dönüştürme işlemleri için idealdir.
const numbers = [1, 2, 3, 4, 5];
const squared = numbers.map(num => num * num);
console.log(squared); // [1, 4, 9, 16, 25]Yukarıdaki örnekte, sayıların karesini alan bir dönüşüm yapılmıştır. Map fonksiyonu, her eleman için verilen callback fonksiyonunu çalıştırır ve sonuçları yeni bir dizi olarak döner.
Map ile Nesneler Üzerinde Dönüşüm
Map sadece basit tiplerde değil, nesneler üzerinde de kullanılabilir. Örneğin, bir kullanıcı listesinde sadece isim bilgilerini çekmek için:
const users = [
{ id: 1, name: 'Ali', age: 30 },
{ id: 2, name: 'Ayşe', age: 25 },
{ id: 3, name: 'Mehmet', age: 35 }
];
const userNames = users.map(user => user.name);
console.log(userNames); // ['Ali', 'Ayşe', 'Mehmet']2. Filter Fonksiyonu ile Koşula Uygun Elemanları Seçme
Filter, dizi elemanlarını belirli bir koşula göre filtreler ve bu koşulu sağlayan elemanlardan yeni bir dizi oluşturur. Orijinal dizi yine değişmez.
const ages = [18, 22, 16, 30, 25];
const adults = ages.filter(age => age >= 18);
console.log(adults); // [18, 22, 30, 25]Bu örnekte, 18 yaş ve üzerindeki elemanlar seçilmiştir.
Filter ile Nesnelerden Belirli Kriterde Seçim
Örneğin, kullanıcı listesinden 30 yaş üstü olanları seçmek:
const olderUsers = users.filter(user => user.age > 30);
console.log(olderUsers);
/*
[
{ id: 3, name: 'Mehmet', age: 35 }
]
*/3. Reduce Fonksiyonu ile Dizi Elemanlarını Tek Değere İndirme
Reduce, dizideki elemanları belirli bir işlemle tek bir değere indirger. Örneğin toplam, çarpım, nesne oluşturma gibi işlemler yapılabilir.
const total = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(total); // 15Burada reduce, numbers dizisindeki sayıların toplamını hesapladı. accumulator, önceki toplama karşılık gelir ve işlem sonunda döner.
Reduce ile Nesnelerden Özet Veri Elde Etme
Kullanıcı yaşlarının ortalamasını hesaplamak için:
const totalAge = users.reduce((sum, user) => sum + user.age, 0);
const averageAge = totalAge / users.length;
console.log(averageAge); // 304. Object Manipulation JS: Nesnelerle Çalışmak
JavaScript'te nesneler üzerinde dönüşüm ve filtreleme işlemleri genellikle dizilerle birlikte yapılır. Ancak, doğrudan nesne üzerinde map, filter gibi fonksiyonlar çalışmaz. Bu nedenle nesne işlemleri için önce nesne anahtarları veya değerleri diziye çevrilir.
Örnek: Bir nesnenin değerlerini filtrelemek için Object.entries(), Object.keys() veya Object.values() kullanılabilir.
const scores = {
math: 80,
physics: 90,
chemistry: 70,
biology: 85
};
const highScores = Object.entries(scores)
.filter(([subject, score]) => score >= 80)
.reduce((obj, [subject, score]) => {
obj[subject] = score;
return obj;
}, {});
console.log(highScores);
/*
{
math: 80,
physics: 90,
biology: 85
}
*/Bu örnekte, önce nesne key-value çiftleri diziye çevrilmiş, sonra 80 üzeri skorlar filtrelenmiş ve sonrasında tekrar nesne haline getirilmiştir. Bu teknikler object manipulation js için çok kullanışlıdır.
5. Pratik Kullanım İpuçları ve Performans Notları
- Map ve filter orijinal diziyi değiştirmez, bu yüzden yan etkisizdir ve saf fonksiyon olarak kabul edilir.
- Reduce, karmaşık veri özetlemelerinde güçlüdür ama okunabilirlik için dikkatli kullanılmalıdır.
- Nesneleri diziye dönüştürmek için Object.entries(), Object.keys(), Object.values() fonksiyonları çok faydalıdır.
- Büyük veri setlerinde işlemleri zincirleme yaparken performansa dikkat edilmeli, gereksiz dönüşümlerden kaçınılmalıdır.
6. Sonuç
2026 yılında JavaScript ile JS Array ve Object Manipülasyonu yapmak isteyenler için map filter reduce örnekleri temel taşlardır. Bu yöntemler, veriyi etkili şekilde dönüştürmek, filtrelemek ve özetlemek için vazgeçilmezdir. Nesnelerle çalışırken dizilere çevirmek ve tekrar nesneye dönüştürmek sık kullanılan bir tekniktir.
Başlangıç Seviyesi Kod & Snippet Rehberi olarak, bu temel fonksiyonları iyi kavramanın programlama becerilerinizi artıracağını ve size pratik çözümler sunacağını vurguluyoruz. Bu yöntemlerle kodlarınız hem daha okunabilir hem de daha etkili olacaktır.
Eğer JavaScript'te dizi ve nesne işlemlerine dair daha fazla örnek ve detaylı rehber arıyorsanız, Başlangıç Seviyesi Kod & Snippet Rehberi'nin kaynaklarını inceleyebilirsiniz.