Javascript: Map, Reduce ve Filter — Bölüm 2

0 4,067

Yazı dizimizin bu bölümünde filter() hakkında bilgi vermeye çalışacağım. map() ile ilgili yazdığım yazıya aşağıdaki linkten ulaşabilirsiniz.

Previously on “Avengers”
Profesör: Arkadaşlar herkes maskelerini taksın. Operasyon başlıyor.
Tokyo: Profesör saçlarımı yeni yaptırdım. Bozulmasın.
Profesör: Tamam Tokyo hariç herkes maskeleri taksın.

Birinci Bölüm

filter(): Sen gel, Sen gel , Sen gelme, Sen gel

“Dizinin her bir elemanı için; parametre olarak verilen (callback) fonksiyonu çağırır ve fonksiyonda testi geçen tüm öğeler ile birlikte yeni bir dizi oluşturur.”

Örneğin: Ad ve yaşların olduğu bir dizide yaşı 20’nin üzerinde olan kişiler filtrelendiğinde, yeni bir dizi oluşturulur. Orijinal liste 10 elemanlı ise yukarıdaki şarta göre oluşturulan liste 5 elemanlı olabilir.

 

Parametreler:

  • callback: Dizinin her bir elemanı için çağrılacak olan fonksiyondur. Üç parametre alır. Fonksiyonun ilk parametresi olan element dizinin o anda işlem yapılan elemanı, ikinci parametresi olan index dizinin o anda işlem yapılan elemanın indeksi ve üçüncü parametresi olan array ise map tarafında çağrılan dizidir. currentValue parametresi zorunlu olarak callback fonksiyonuna verilmeli, diğer parametreler isteğe bağlı olarak; verilebilir yada verilmeyebilir.
  • thisArg: callback fonksiyonu çalıştırılırken kullanacağı this değeridir.

Parametrelerin kullanımı için map() bölümünde anlatılan örnekleri okuyabilirsiniz.

filter()’ın daha iyi anlaşılması için örneklere geçelim.

Örnek-1: Eleman sayısı 10000 olan ve 0 ile 10000 arasında rastgele sayılardan oluşan bir dizi oluşturup; dizi içinde 11’e bölünen sayıları yeni bir dizi olarak gösterelim. Aynı işlemi ‘for’ döngüsü ile yapıp hız testi yapalım. Denemek için burayı tıklayın

Örnek-2: 26 yaşında olan kişileri listeleyelim. Denemek için burayı tıklayın

Örnek-3: unvanında ‘re’ geçen kişileri listeleyelim. Büyük küçük harf duyarlı. Denemek için burayı tıklayın

Örnek-3: unvanında ‘öğ’ geçen kişileri listeleyelim. Büyük küçük harf önemli değil. Denemek için burayı tıklayın

Örnek-4: Kesişim işlemi. 2 dizide ortak elamanları yeni bir dizide görüntüleyelim. Denemek için burayı tıklayın

Örnek-5: Listedeki boş olmayan elemanları yeni bir dizide görüntüleyelim. Denemek için burayı tıklayın

Örnek-6: Listedeki elemanın tipi “string” olan elemanları yeni bir dizide görüntüleyelim. Denemek için burayı tıklayınKaynak

Örnek-7: Bir dizide tekrarlayan elemanları teke indirelim. Denemek için tıklayınız.

Bir sonraki bölümde reduce() ile tanışacağız. Sonraki bölümde görüşmek üzere.

Kaynaklar:

 

Email adresiniz yayınlanmayacaktır.