Türkiye'nin en kullanışlı kodcu forumu, en baba kodcular burda !

Yeni özellik: Gönderinize jsfiddle kodu ekleyebilirsiniz.
Bilgi: Bu forum Türkiye'nin en kullanışlı kodcu forumudur. Forum içerisindeki davranış ve paylaşımlarınız moderatörler tarafından izlenmektedir.
 
Kullanıcı avatarı
windofelm
Mesaj Panosu Yöneticisi
Mesaj Panosu Yöneticisi
Mesajlar: 73
Kayıt: 15 Eki 2015, 20:06:57
x 66
İletişim:

Lodash Nedir? Kullanım Örnekleri

22 May 2018, 12:32:17

Javascrip ile proje geliştirirken bir takım yardımcı araçlara ihtiyaç duyarsınız. Örneğin bir dizi içinde arama yapma, diziyi sıralama vs gibi yardımcı methodları içeren, sizin yerinize daha önceden düşünülmüş birçok yöntemi içerisinde barındıraan bir kütüphanedir. Underscore a da benzer işlemleri yapar ve kullanımı oldukça kolaydır.

Nesne Atama (_.assign)
Bir nesneye farklı nesneleri atama yapmak için kullanılır, genelde settings nesneslini override etmek için kullanılır. Örneğin varsayılan ayarları içeren settings nesnesini kullanıcının göndereceği property lerle ezmek istediğinizde kullanabailirsiniz.

var foo = { a: "a property" };
var bar = { b: 4, c: "an other property" }

var result = _.assign({ a: "an old property" }, foo, bar);
// result => { a: 'a property', b: 4, c: 'an other property' }


Tekrar Ettirme (_.times)
Örneğin elinizde random sayılar oluşturan bir method varsa ve size n tane random sayı lazımsa, bu işlemi sizin için yapar ve diziye atar.

function getRandomInteger() {
    return Math.round(Math.random() * 100);
}

var result = _.times(5, getRandomNumber);
// result => [64, 70, 29, 10, 23]


Gecikmeli Tetikleme (_.debounce)
Bu yöntem genellikle arama kutuları için kullanılır. Belirteceğiniz süre aralığı sağlanmadan ilgili methodu çalıştırmaz. 500 milisaniyeden kısa aralıklarla inputa değer giriyorsanız validateEmail methodu tetiklenmeyecektir.

function validateEmail() {
    // Validate email here and show error message if not valid
}

var emailInput = document.getElementById("email-field");
emailInput.addEventListener("keyup", _.debounce(validateEmail, 500));


Dizi Elemanı Arama (_.find)
Elinizde nesneler içeren bir dizi olduğunu varsayalım ve bu dizi içerisindeki belirttiğiniz koşullara uyan nesneleri bulmak istiyorsunuz.

var users = [
  { firstName: "John", lastName: "Doe", age: 28, gender: "male" },
  { firstName: "Jane", lastName: "Doe", age: 5, gender: "female" },
  { firstName: "Jim", lastName: "Carrey", age: 54, gender: "male" },
  { firstName: "Kate", lastName: "Winslet", age: 40, gender: "female" }
];

var user = _.find(users, { lastName: "Doe", gender: "male" });
// user -> { firstName: "John", lastName: "Doe", age: 28, gender: "male" }

var underAgeUser = _.find(users, function(user) {
   return user.age < 18;
});
// underAgeUser -> { firstName: "Jane", lastName: "Doe", age: 5, gender: "female" }


Dizi Sıralama (_.sortBy)
Elinizdeki diziyi veridiğiniz kriterlere göre sıralar.

var users = [
  { 'user': 'fred',   'age': 48 },
  { 'user': 'barney', 'age': 36 },
  { 'user': 'fred',   'age': 40 },
  { 'user': 'barney', 'age': 34 }
];
 
_.sortBy(users, [function(o) { return o.user; }]);
// => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
 
_.sortBy(users, ['user', 'age']);
// => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]
0 x
“Zor diyorsun. Zor olacak ki imtihan olsun.” Mevlana

Tags:

Kimler çevrimiçi

Bu forumu görüntüleyen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir