Merhaba arkadaşlar, bu yazımda sizlere JavaScript Array Filter konusundan bahsedeceğim.
Array metotları, JavaScript geliştiricilerinin hayatını kolaylaştıran çok önemli araçlardır. Bu metotlardan biri olan filter, bir dizideki belirli şartlara uyan öğeleri filtreleyerek yeni bir dizi oluşturur.
Filter Metodu Nedir?
filter
metodu, belirttiğiniz şartlara uyan öğeleri alıp yeni bir dizi oluşturur. Orijinal dizi değişmez. Bu metot, saf fonksiyonel programlama prensiplerine uygun çalışır.
Metot Bilgisi:
array.filter(callback(element[, index[, array]])[, thisArg])
- callback: Her bir öğeyi kontrol eden fonksiyon.
- element: Dizi öğesini temsil eder.
- index (opsiyonel): Öğenin dizideki indeksini temsil eder.
- array (opsiyonel): Filtreleme yapılan diziyi temsil eder.
- thisArg (opsiyonel): Callback fonksiyonu için kullanılacak this değeri.
Filter Kullanımına Dair Temel Örnekler
1. Belirli Bir Şarta Uyan Sayıları Filtreleme
Pozitif sayıları filtrelemek için:
const sayilar = [-3, 2, 0, -7, 8, 4];
const pozitifSayilar = sayilar.filter(sayi => sayi > 0);
console.log(pozitifSayilar); // [2, 8, 4]
2. Metinlerde Belirli Bir Harfi Aramak
“A” harfiyle başlayan kelimeleri bulmak için:
const kelimeler = ["Araba", "Ev", "Ayna", "Telefon"];
const aIleBaslayanlar = kelimeler.filter(kelime => kelime.startsWith("A"));
console.log(aIleBaslayanlar); // ["Araba", "Ayna"]
3. Nesnelerle Filtreleme
Bir nesne dizisinde belirli bir şarta uyan öğeleri bulmak:
const kullanicilar = [
{ ad: "Ali", yas: 25 },
{ ad: "Ayşe", yas: 30 },
{ ad: "Mehmet", yas: 20 }
];
const yasBuyuk25 = kullanicilar.filter(kullanici => kullanici.yas > 25);
console.log(yasBuyuk25);
// [{ ad: "Ayşe", yas: 30 }]
Daha İleri Seviyede Filter Kullanımı
1. Birden Fazla Koşulu Birleştirme
Yaşı 18 ile 30 arasında olanları filtrelemek:
const uygunKullanicilar = kullanicilar.filter(
kullanici => kullanici.yas >= 18 && kullanici.yas <= 30
);
console.log(uygunKullanicilar);
// [{ ad: "Ali", yas: 25 }, { ad: "Mehmet", yas: 20 }]
2. Nested Dizilerde Filtreleme
Bir dizi içinde dizi olan yapılarda belirli öğeleri filtrelemek:
const notlar = [
["Ali", 85],
["Ayşe", 90],
["Mehmet", 70]
];
const basariliOgrenciler = notlar.filter(not => not[1] > 80);
console.log(basariliOgrenciler);
// [["Ali", 85], ["Ayşe", 90]]
3. Tekrarlayan Elemanları Filtreleme
Bir dizideki tekrarlayan elemanları temizlemek:
const numaralar = [1, 2, 2, 3, 4, 4, 5];
const benzersizNumaralar = numaralar.filter((numara, index, dizi) => dizi.indexOf(numara) === index);
console.log(benzersizNumaralar); // [1, 2, 3, 4, 5]
Performans İpuçları
- Callback fonksiyonlarınızı basit ve hızlı tutun.
- Filtreleme işlemleri çok büyük dizilerde kullanılacaksa algoritma optimizasyonları yapın.
- Gerekirse diziyi parçalar halinde filtreleyin.
Sonuç
JavaScript’in filter metodu, dizi içeriklerini işlemek ve şartlara uyan öğeleri çıkarmak için güçlü bir çözüm sunar. Yukarıdaki örnekler ve ipuçlarıyla, filter metodunu çok daha etkili bir şekilde kullanabilirsiniz.
Array filter ile ilgili daha fazla bilgilendirme ve kontrol sağlamak için:
https://www.w3schools.com/jsref/jsref_filter.asp
Filtreleme yaptıktan sonra da sıralama yapmak isterseniz bir önceki yazımı inceleyebilirsiniz.
JavaScript Sort Kullanımı: Dizilerde Sıralama
Umarım faydalı olur.
Bir sonraki yazıda görüşmek üzere…