Javascript programlama dilinde diğer programalama dillerinde olduğu gibi (örneğin C# olduğu gibi) Lambda Expression yapısı olmasa da JavaScript dilinin esnek yapısı sayesinde bu yapya benzer ifadeleri program yazarken kullanabiliriz. Bildiğiniz gibi Lambda Expressionlar belirli bir dizide sorgulama ya da filtreleme yapmamıza imkan sağlar. JavaScript dilinde filter metodu ile birlikte diğer programlama dillerinde olan Lambda Expression'lara benzer yapıyı kullanabiliriz. Ne demek istediğimi anlatabilmek için bir örnek üzerinden konuyu inceleyelim. Aşağıdaki gibi bir dizi verildiğini düşünün. Bu dizi üzerinde filtreleme yapmak için JavaScript Lambda Expressionları kullanacağız. Bu kullanım üzerinden JavaScript Lambda Expressionların ne olduğunu açıklayacağız.
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
}
];
Lambda Expression örneğini anlatmak için ilk filtre olarak seviyesi 0 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ım şekline JavaScript dilinde Lambda Expression kullanımı 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; });
Eğer böyle bir ifade kullanmadan yukarıdaki işlemleri halletmeye çalışsak döngüler ile dizi içerisinde gezmeli, aynı zamanda if else yapıları kullanarak da dizideki elemanların eşleşmesini kontrol etmek zorundaydık. Bunun 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üşlerinin pozitif yönde değişmesine neden olacaktır. Aynı zamanda daha önceki kodlarınızda da bu filter metodunu ve Lambda Expressionlarla değiştirmek isteyeceksiniz...
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
}
];
Lambda Expression örneğini anlatmak için ilk filtre olarak seviyesi 0 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ım şekline JavaScript dilinde Lambda Expression kullanımı 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; });
Eğer böyle bir ifade kullanmadan yukarıdaki işlemleri halletmeye çalışsak döngüler ile dizi içerisinde gezmeli, aynı zamanda if else yapıları kullanarak da dizideki elemanların eşleşmesini kontrol etmek zorundaydık. Bunun 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üşlerinin pozitif yönde değişmesine neden olacaktır. Aynı zamanda daha önceki kodlarınızda da bu filter metodunu ve Lambda Expressionlarla değiştirmek isteyeceksiniz...
Yorumlar
Yorum Gönder