CodeBlanks Logo Icon CodeBlanks

filter

.filter ile koşula uyan elemanları süzmeyi öğrenirsin.

filter metodu

filter metodu, bir dizide koşula uyan elemanlardan oluşan yeni bir dizi döndürür. Koşul sağlanmazsa o eleman atlanır; orijinal dizi yine değişmez.

Sözdizimi: dizi.map(fn)'e benzer biçimde dizi.filter(fn). Burada fn, her eleman için mantıksal bir değer (true veya false) döndüren bir koşul fonksiyonudur (predicate). true dönen elemanlar sonuç dizisinde kalır.

Örnek: [1, 2, 3, 4].filter(n => n > 2) sonuçu [3, 4] olur. Çünkü yalnızca 3 ve 4, 2'den büyüktür.

filter ve predicate

filter'e verilen fonksiyona koşul fonksiyonu (predicate) denir. Bu fonksiyon mantıksal bir değer döndürür: true ise eleman alınır, false ise atlanır.

Koşul fonksiyonu dizi elemanının kendisini kullanabilir; örneğin kullanıcı yaşlarından oluşan bir listede reşit olanları seçmek için ages.filter(age => age >= 18) yazılır. Koşul ne kadar karmaşıksa, predicate o kadar okunabilir olmalıdır.

Hiçbir eleman koşulu sağlamazsa filter boş bir dizi döndürür; null veya hata vermez. Bu özelliği güvenle kullanabilirsin.

Uygulama Pahalı kitapları seç

[120, 45, 200, 80] fiyatlarından oluşan bir dizi tanımla. filter ile yalnızca 100'den büyük fiyatları içeren yeni bir dizi oluştur ve sonuçu console.log ile yazdır.

Başlangıç kodu

index.js
const prices = [120, 45, 200, 80];
// 100'den büyük fiyatları süz ve yazdır

Örnek çözüm

index.js
const prices = [120, 45, 200, 80];
const expensive = prices.filter(p => p > 100);
console.log(expensive);

Beklenen çıktı

[ 120, 200 ]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 İkiyi geçenleri süz

Soru
const nums = [1, 2, 3, 4];
const big = nums.filter(n => n ____ 2);
Cevap
const nums = [1, 2, 3, 4];
const big = nums.filter(n => n > 2);

Açıklama: n > 2 koşulu 3 ve 4'ü tutar.

2 filter çıktısı ne olur?

  • true
  • false
  • Mantıksal değer
  • Yeni bir dizi Doğru cevap

Açıklama: filter her zaman yeni bir dizi döndürür, mantıksal değer değil.

3 filter parçalarını eşle

Kavram Anlamı
dizi.filter(fn) Süzme çağrısı
fn Koşul fonksiyonu
true Elemanı tutan sonuç
false Elemanı atan sonuç

Başlangıç bölümündeki tüm dersler