Temel olarak bir işlevdeki yineleme. Lodash'ın iteratee işlevini çağırdığınızda, daha sonra kodda kullanılabilecek bir işlev döndürür.
Örnek koddaki aşağıdaki nesneleri kullanarak sırayla tanımlayacağım 3 farklı yineleme türü vardır. iteratee bir dize ile çağrıldığında
let mary = {
name: 'mary',
gender: 'female',
age: 25,
job: {
title: 'teacher',
salary: 10000
}
}
let dave = {
name: 'dave',
gender: 'male',
age: 27
}
let oswald = {
name: 'oswald',
gender: 'male',
age: 25
}
let people = [mary, dave, oswald];
1. Mülkiyet o verilen dize anahtarla bir nesnenin özelliğini dönecek bir fonksiyon verir,
iteratee.
örn.
let getAge = _.iteratee('age');
Bizim burada ile bitirmek bir nesnenin yaşı özelliğini döndüren bir fonksiyondur. benzer bir şey:
function getAge(object){
return object['age'];
}
yüzden insanların yaşını dönmek için getAge
kullanabilirsiniz:
let marysage = getAge(mary);
let davesage = getAge(dave);
dize de özelliğine bir yol olabilir:
let jobtitle = _.iteratee('job.title');
2. Eşleşmeler yineleme
iteratee bir nesne ile çağrıldığında, döndürür Bir nesne, belirtilen değere sahip bir eşleme anahtarına sahipse, bir yüklem (true veya false değerini döndürür).
örn.
let is25 = _.iteratee({age: 25});
let isMary25 = is25(mary);
let isDave25 = is25(dave);
Eşleşmeler, tek bir özellikle sınırlı değildir. Bu birden fazla anahtarı ve değerleri alabilir:
let isFemaleAged25 = _.iteratee({gender: 'female', age: 25});
3. mülkiyet iteratee
Bu iteratee maçları benzer Maçlar ama iteratee anahtar ve değerler dizisi ile çağrıldığında oluşturulur.
yukarıda oluşturulan is25
fonksiyon aynı zamanda şöyle oluşturulabilir:
let is25 = _.iteratee(['age', 25]);
özellikleri de bir anahtar bir yol olabilir, maçları kullanılarak yapılamaz şey iteratee:
let isTeacherAged25 = _.iteratee(['age', 25, 'job.title', 'teacher'])
Yineleme kullanma
Çoğu zaman, iteratee işlevini doğrudan aramayacaksınız. Lodash, iteratee alabilen bir işlevi çağırdığınızda işlevi dahili olarak kullanır.
örn. İşte lodash
let names = _.map(people, 'name'); // => ['mary', 'dave', 'oswald']
dize
name
ile
iteratee
arayıp haritayı aramaya fonksiyonu olarak kullanacaktır. İşte lodash
let peopleAged25 = _.filter(people, {age: 25 }); // mary and oswald
nesne
{age: 25}
ile
iteratee
arayıp insanlar koleksiyonunu filtrelemek için fonksiyonu olarak kullanacaktır. Özlü bir cevap ve açıklama için
teşekkürler. – johnwick0831
müthiş bir yanıt.Çok ayrıntılı –