Tərtibatçıdan yalnız tapşırıqları yerinə yetirmək tələb olunmur, həm də tapşırıqları daha səmərəli şəkildə yerinə yetirmək lazımdır. Bu gün JavaScript-də tərtibatçılar üçün dəyişənlərlə işləməyi asanlaşdıran bir neçə kitabxana mövcuddur. Bu dərslikdə Lodash kitabxanasının ən ümumi funksiyalarından necə istifadə edəcəyimizi öyrənəcəyik.
Əgər siz hələ də Lodaşı sınamamısınızsa, indi vaxtdır. Lodash massivlər, tam ədədlər, obyektlər, mətnlər və digər məlumat növləri ilə işi asanlaşdıran müasir JavaScript yardım paketidir.
O, müxtəlif növ obyektlərlə işləməkdə sizə kömək edəcək və ümumi metodları kodlaşdırma ehtiyacını aradan qaldıraraq vaxtınıza qənaət edəcək. Kodunuz daha az sətirlə daha təmiz olacaq və bütün brauzerlərdə işləyəcək. Onsuz da istifadə etmirsinizsə, diqqətlə düşünməlisiniz.
Lodash-ı qəbul etməmək JavaScript kod bazalarımız üçün böyük itkidir. Bu, işimizdə rastlaşdığımız ümumi problemlər üçün səhvsiz və zərif bir həlldir və ondan istifadə kodumuzu daha oxunaqlı və idarə oluna bilən hala gətirəcək.
Gəlin daha populyar (yaxud yox!) Lodash funksiyalarından bəzilərini araşdıraq və bu kitabxananın nə qədər faydalı və gözəl olduğunu kəşf edək.
1. _.sortedUniq
Bütün təkrarlanan dəyərlər bununla geri qaytarılmayacaq. Sadəcə çeşidlənmiş massivlər üçün olduğundan, bu, əsasən sürət səbəbləri üçün istifadə olunur. Bu, yalnız böyük bir sıra ilə məşğul olsanız faydalıdır. Sürəti yaxşılaşdırmaq istəyirsinizsə, massivinizi çeşidləyin və çeşidlənmiş massivlərlə daha yaxşı işləyən üsullardan istifadə edin.
Lodaşın buna bənzər bir sıra digər funksiyaları var. Siz .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .nisortedBy, .nisortedBy, .
2. _.azaltmaq
_.reduce filtr funksiyasına bənzəyir. Yeganə fərq odur ki, geri qaytarılan obyektin formasını seçmək imkanınız var. Bu normaldır, əgər dediklərimi başa düşmürsənsə; buna misal var.
Əslində, biz yaşa görə təsnif edilmiş istifadəçiləri ehtiva edən yeni obyekti qaytarırıq, lakin yalnız 18-59 yaş arası olanlar üçün. Bu Lodash köməkçi funksiyası ən çox istifadə edilənlərdən biridir. O, həmçinin ES6-a daxildir. Mən həmçinin iki tipik səhvi qeyd etmək istərdim: funksiyanın sonunda nəticəni qaytarmağı unutmayın və üçüncü parametr kimi nəticə üçün standart dəyəri təqdim edin (burada).
3. _.get və ._set
Bunun üçün, demək olar ki, eyni şeyi yerinə yetirən iki funksiyanı göstərməklə sizi bir qədər aldadacağam. _.get obyektdən xassə dəyərini qaytarır və _.set, yaxşı, siz bunu təxmin etdiniz, dəyəri olan bir xüsusiyyət təyin edin. Unikal heç nə yoxdur, yalnız onun yolu ilə bir əmlaka daxil ola bilərsiniz.
Gəlin bir nümunəyə baxaq.
Əgər _.set çağırarkən yol mövcud deyilsə, o yaradılacaq. Artıq “Müəyyən edilməmiş əmlak “elementləri” təyin edilə bilməz” xətaları olmayacaq. Əgər yol mövcud deyilsə, _.get xəta əvəzinə qeyri-müəyyən qaytaracaq. Yol qeyri-müəyyən olaraq həll edilərsə, siz həmçinin standart dəyər (üçüncü parametr) təqdim edə bilərsiniz.
4. _.tapmaq
Tək obyekti tapmaq üçün massivdə dövrə vurmaq əvəzinə biz _.find-dən istifadə edə bilərik. Bu yaxşıdır, lakin _.find edə biləcəyi yeganə şey bu deyil. Tək bir kod sətri ilə siz çoxsaylı xassələrdən istifadə etməklə obyekti də kəşf edə bilərsiniz. Onu yoxlamaq!
5. _.keyBy
Sevimlilərimdən biri _.keyBy-dir. Müəyyən bir atributu olan bir obyekt əldə etməyə cəhd edərkən olduqca faydalıdır. Tutaq ki, bizim 100 bloq girişimiz var və “34abc” id ilə birini tutmaq istəyirik. Biz bunu necə edəcəyik? Gəlin görək nə baş verir! Əgər server onu massiv kimi təqdim edərsə, bu üsul obyekt kolleksiyasını təşkil etməyə kömək edə bilər. Funksiya ikinci arqument kimi də istifadə edilə bilər.
6. _.Hər biri üçün
Bu üsul, istədiyiniz məntiqi yerinə yetirməyə imkan verən bir sıra obyektləri bir-bir təkrarlayacaq. Bu ilk misalda mən tamName adlı yeni xassə yaratmaq üçün onların ad və soyadlarını birləşdirərək istifadəçi obyektlərinin siyahısını döndərəcəm.
forBunların hər biri iki parametr qəbul edir. Üzərində dövrə vurduğumuz massiv birinci parametrdir. İkinci arqument təkrarlama funksiyasıdır, birinci parametr fərdi element istinadı, ikincisi isə təkrarlamanın cari indeksidir.
7. _.xəritə
Xəritə, forEach kimi, dəyərlər massivində təkrarlanır. Xəritə funksiyası isə təkrarlama funksiyası tərəfindən verilən yeni dəyərlər massivini qaytarır. Biz burada forEach nümunəmizdə olduğu kimi eyni istifadəçi kolleksiyasından istifadə edirik. Biz bütün istifadəçilərin tam adlarının düzlənmiş massivi olan yeni dəyişən yaratmaq üçün _.map-dan istifadə edə bilərik.
8. _.fərq
Fərq funksiyası birinci və ikinci massivlər arasında fərqlənən yeni dəyərlər massivi yaradacaq. Mübahisələrin yerlərinin nəticələrə təsir etdiyini qeyd etmək çox vacibdir.
9. _.almaq
_.get() funksiyası bizə obyekt daxilində elementi tapmaqda kömək edə bilər. Təqdim olunan yolda element tapılmadıqda geri qayıtmaq üçün _.get() funksiyası üçün standart dəyər təyin edə bilərik. _.get() funksiyası üç parametr qəbul edir, bunlardan birincisi element əldə etmək istədiyimiz obyektdir. Yol ikincidir. Üçüncü dəyər elementi tapmaq mümkün olmadıqda qaytarmaq istədiyimiz standart dəyərdir.
10. _.tapmaq
_find() funksiyası _.get() metodu ilə eyni görünə bilər. _.get() metodu kimi _.find() funksiyası üç parametri qəbul edir. Bununla belə, _.get() metodundan fərqli olaraq, birinci arqument massiv və ya obyekt ola bilər. İkinci arqument hər iterasiyada çağırılacaq funksiyanı təyin edir. Üçüncü giriş kolleksiyanın başlanğıc indeksidir. Çünki _.find() funksiyası kolleksiyanın hər bir elementi üzərində təkrarlanır.
11. _.groupBy
Hər bir dəyər eyni açarı olan obyektlər massivi olmaqla, funksiyanın nəticəsi (və ya təsadüfi seçilmiş xassə adı) ilə adlandırılmış obyekt yaradın.
12. _.dəst
_.set() metodu _.get() metodunun tərsidir. Bu, müəyyən bir yolda bir elementin dəyərini dəyişdirəcəkdir. Obyekt və ya massiv birinci parametr, yol ikinci, təyin etmək istədiyiniz dəyər isə üçüncüdür.
13. _.birləşdirmək
O, Object.assign-a bənzər funksiyaları yerinə yetirir, ancaq daha dərin obyektləri dəyişdirmək əvəzinə onları yeniləmək üçün əsas strukturun dərinliklərində təkrarlanır.
14. ._tərkib
Bu olduqca sadə bir nümunədir. Bütün "birləşən diakritik işarələr" silinir. Beləliklə, "é" "e" olur. Beynəlmiləlləşdirmə və lokallaşdırma olduqda, axtarış funksiyaları üçün mətnin çapını təmizləmək yaxşı təcrübədir.
15. _.debounce
Bu, ən təsirli Lodash strategiyalarından biridir. Onun nə etdiyini və nə vaxt istifadə etməli olduğunuzu başa düşmək də çətin ola bilər. _.debounce() metodu funksiyanı qaytarır. _.debounce() metodunun funksiyası funksiyanın sonuncu dəfə çağırılmasından bəri müəyyən edilmiş millisaniyələr keçənə qədər çağırışı gecikdirəcək.
Nəticə
Lodash JavaScript dilinin güclü uzantısıdır. Minimum səylə qısa və səmərəli kod yarada bilər. Lodash da tamamilə moduldur. Onun bəzi funksiyaları sonda köhnəlsə də, mən inanıram ki, o, JS dilinin təkamülünü idarə etməklə yanaşı, tərtibatçılara çoxsaylı faydalar verəcək.
Ümid edirəm ki, bu bir neçə Lodash imkanları massivlər, obyektlər və kolleksiyalarla işləyərkən Lodash-ın nə qədər güclü olduğunu görməyə kömək edəcək. ziyarət edə bilərsiniz sənədlər təklif etdiyi bir çox digər variantları araşdırmaq.
Cavab yaz