Ana içeriğe atla

JavaScript - Dizilerde FILTER Kullanımı

Javascript Filter Kullanımı, Masaüstü JavaScript, Bilgisayar EkranıJavascript dilinde diziler üzerinde sorgulama yapmak için for, while, do while yada foreach döngüsünü kullanmaktansa doğru yöntem filter metodunu kullanmaktır. Bu metodu kullanmak kodunuz okunabilirliğini artıracak aynı zamanda kodunuz daha profesyonel görünmesine yardımcı olacaktır. Filter'ler adından da anlaşılacağı gibi dizi içindeki verilere filtre uygulamayı sağlayan bir metottur. Bu metot içine parametre olarak gönderilen metotla dizi içinde filtreleme yapılarak istenilen verilere ulaşılabilir. Filtreler aynı zamanda verilerin istenilen formatta gözükmesi için de kullanılır. Örneğin dizideki bir özellik tarih verisi ise bu veriyi istediğimiz tarih formatında göstermek için filter metodunu kullanabiliriz. JavaScript için yazılmış birçok framework içinde de kendi filtreleme kütüphaneleri vardır. Bunlardan en çok kullanılanı ve tercih edileni de AngularJS'in sahip olduğu filtreleme mantığıdır. Biz bu makalemizde ise saf JavaScript içinde bulunan filtreleme mantığını örnekler üzerinden açıklayacağız.

Örneğe geçmeden önce şunu da belirtmem lazım ki, çoğu programlama dilinde var olan lambda expression'lar JavaScript dilinde olmasa da, JavaScript dilinin esnekliği buna benzer bir yapı kullanmamıza imkan sağlıyor. Lambda Expression konusuna bakarsanız diziler içinde arama yada filtreleme yapmak için en kısa yazım şekli, okunabilir ve profesyonel kod yazma şekli olduğunu görebilirsiniz. JavaScript dilinde filter kullınımı örneği için biz de bu yapıya benzer bir yazılım tarzı kullanacağız. Aşağıdaki gibi bir dizimiz olduğunu düşünün. 

        scope.KlasorListesi=[
            {
                KlasorID: 1,
                KlasorAdi: "İnformation Universe Of ALizade ZADE",
                UstKlasorID: 1,
                Seviye: 0
            },
            {
                KlasorID: 2,
                KlasorAdi: "Detay",
                UstKlasorID: 1,
                Seviye: 1
            },
            {
                KlasorID: 3,
                KlasorAdi: "Deneme",
                UstKlasorID: 1,
                Seviye: 1
            },
            {
                KlasorID: 3,
                KlasorAdi: "Test",
                UstKlasorID: 2,
                Seviye: 2
            }
        ];

Filter örneğini anlatmak için ilk filtre olarak seviyesi 1 olan dizi elamanlarını bulalım. Bunun için aşağıdaki gibi bir ifade kullanabiliriz.

scope.KlasorListesi = scope.KlasorListesi.filter(function (x) { return x.Seviye == 1; });

Bu yazım şekli bize seviyesi 1 olan dizi elemanlarını döndürecektir. Görüldüğü gibi bu yazılım şekli diğer dillerde olan lambda expression mantığına çok yakındır. Bu yazılıma aynı zamanda JavaScript dilinde Lambda Expression kullanımı da diyebiliriz. Örneği tam olarak anlayabilmek için isterseniz bu dizi üzerinde bir tane daha filtre kullanalım. Bu sefer isterseniz Seviyesi 1 olan ve UsKlasorID bilgisi 1 olan bir filtre uygulayalım. Bunun için aşağıdaki gibi bir ifade yazabilirsiniz.

scope.KlasorListesi = scope.KlasorListesi.filter(function (x) { return x.Seviye == 1 && x.UstKlasorID==1; });

Normal metotlarda döngüler, aynı zamanda if else yapıları kullanmak yerine basitçe tek satırda işlemlerinizi halledebiliyorsunuz. Ayrıca kod kalabalığından ve karmaşasından da kurtulmuş oluyorsunuz. Bu yazım şeklini kullanmak aynı zamanda kodunuzu okuyanların da sizinle ilgili görüşlerini değiştirecektir. Filter kullanmak aynı zamanda zevklidir. Çok özelliği olan dizilerde kendinizi sql sorguu yazıyormuşsunuz gibi hissedersiniz. 
Not: Framework olarak AngularJS kullandığım için değişken tanımlamalarımı da buna göre yaptım. Sorabilirsiniz neden AngularJS içindeki filter mantığını kullanmadın diye. Aslında bu konu da önemli çünkü AngularJS içinde var olan filter mantığını kullanmak için biraz çaba sarfetmek lazım. Javascript içindeki kod filter yapını kullanmak genelde bir seferde kullanmak için uygundur. Ama çok fazla yerde kullanacağınız filtre işlemleri için framework içinde bulunan filtre mantığını yada var olan hazır filtreleri kullanabilirsiniz. 

Yorumlar

Bu blogdaki popüler yayınlar

Medyan (Ortanca) Nedir? Nasıl Hesaplanır? Nerelerde Kullanılır?

Medyan işlemi olasılık hesaplamalarında sıkça kullanılan bir sayı dizisinin ortalamasını hesaplamak için alternatif yöntemlerden bir tanesidir. Ortanca medyan işleminin diğer adıdır. Matematiksel olarak medyan işlemi bir sayı dizisi küçükten büyüğe sıralayarak ortada kalan elemanı medyan değeri olarak belirleme işlemidir. Örnek verecek olursak: 2, 1, 5, 4, 5, 1, 2, 3, 5 serisi sıralanırsa 1, 1, 2, 2, 3, 4, 5, 5, 5 serisi elde edilir. Bu seri 9 elemanlı olduğundan ortadaki, yani 5. eleman (medyan) olacaktır. 5. eleman 3 sayısıdır. Yani ortanca değeri 3'dür Eleman sayısı tek sayı olan bir seride medyan değerin sırasının hesaplaması şu şekilde formüle edilir. Medyanın Sırası = (Eleman Sayısı + 1) / 2 Bu formülü yukarıdaki örneği uygulayacak olursak; Medyanın Sırası = (9 + 1) / 2 = 5 Veri serisi eleman sayısı bir çift sayı ise bu durumda serinin 2 medyanı olacaktır. Örneğin 2, 1, 5, 4, 5, 1, 2, 3, 5, 4 serisi sıralandığında 1, 1, 2, 2, 3, 4, 4, 5, 5, 5 s

Ağaçlar Kireçle veya Badana İle Neden Boyanır?

Ağaçlar kireçle boyanmasının veya badana yapılmasının hem çevreye hem de doğaya, ağaçlara faydası var. Bu makalede bu geleneği enine boyuna tartışmaya çalıştık. Ağaca zarar veren mikrop ve bakterileri öldürür. Ağacı çok aşarı soğuk havalarda ve çok aşırı sıcak havalarda korur. Ağacın çürümesini ve kurtlanmasını önler. Ağacın gövdesinin alabileceği zararları en az düzeyde düşürmeyi sağlar. Hoş, güzel, hijyenik, temiz pırıl pırıl bir görüntü oluşturur. Ayrıca çok sıcak havalarda da ağacı yanmaya karşı korumak. En büyük etkisi soğuk havalarda ağacı don vurmalarına karşı korumak . Küresel ısınma göz önüne alındığında mevsim değişiklikleri ani don, ani ısı artışları ve azalışları sonucunun doğuracağı etkenler için yararlı etkin bir yöntem. Gövdeden obur dalların çıkmasını azaltmak için sürülür. Kireçleme ağaçları güneş yanığından korumak için yapılıyor. Ağaçlar da güneşten yanabiliyorlar. Bu arada odun dokudaki gözenekleri doldurarak kapattığı için, zararlıların yuv

Azərbaycan Dilində Vurğu Qəbul Etmeyen Şekilçiler

Sözlərdə hecalardan birinin digərlərinə nisbətən daha qüvvətli deyilməsinə heca vurğusu deyilir. Üzərinə vurğu düşən hecaya isə vurğulu heca deyilir. Azərbaycan dilində vurğu adətən söz sonuna düşür. Söz şəkilçi qəbul ederkən vurğu adətən şəkilçinin üzərinə keçir. Məsələn: çiç ə k - çiçəkl ə r - çiçəklərd ə n məkt ə b - məktəbl i - məktəblil ə r - məktəblilərd ə n Buna baxmayaraq dilimizdə bir sıra şəkilçilər var ki onlar vurğu qebul etmirlər. Bu məqalədə Azərbaycan dilində vurğu qebul etməyən şəkilçilər incələnəcək ve bu şekilçilərin hansı hallarda vurğu qebul edib hansı hallarda vurğu qebul etmediyi araşdırılacaqdır. Eyni zamanda bildirmək istəyirəm ki vurğu ilə bağlı daha geniş və ətraflı məlumat üçün Azərbaycan Dilində Vurğunun Praktik Məsələləri adlı məqaləyə də nəzər yetirə bilərsiniz.  1. İsimlərdəki şəxs(xəbərlik) şəkilçiləri Məsələn: müəli'məm müəli'msən müəli'mdir müəli'mik müəli'msiniz müəli'mdirlər Qeyd: -dır4