“Egy kisfiú egy könyvet tart a kezében, meglepett arckifejezéssel. his face” by Ben White on Unsplash
Vincent D'amour
Vincent D’amourFollow

Sep 2, 2016 – 4 min read

Mi az a Lodash?

A Lodash az Underscore egy szuperhalmaza. Mi az az Underscore? Az Underscore ” egy csomó hasznos funkcionális programozási segédprogram, anélkül, hogy bármilyen beépített objektumot kibővítene”. Röviden, a Lodash egy JS segédkönyvtár tömbökhöz, karakterláncokhoz és objektumokhoz. A dokumentáció itt található: https://lodash.com/docs

Miért használjuk a Lodash-t?

Segít az összes objektumtípus kezelésében, és időt takarít meg azzal, hogy nem kell általános függvényeket kódolnia. A kódod is tisztább lesz, kevesebb sorral, és minden böngészőben működni fog. Ha jelenleg nem használja, komolyan el kell gondolkodnia rajta.

1. _.assign

Az _.assign az ES6-os spread operátor megfelelője. Elég könnyen érthető, egy vagy több objektum tulajdonságait rendeli hozzá egy forrásobjektumhoz.

2. _.times

_.times argumentumként megkapja az iterációk számát és egy n-szer végrehajtandó függvényt, és az eredményekből egy tömböt ad vissza. Nagyon hasznos dinamikus tesztadatok létrehozásakor.

3. _.debounce

_.debounce meghív egy függvényt az utolsó meghívás óta eltelt bizonyos idő után.

A példában a validateEmail függvényt 500ms után hívja meg, így a hibaüzenet nem jelenik meg azonnal. Az 500 ms-os időzítő minden egyes billentyűleütéskor visszaáll. Így a felhasználó nem fog hibaüzenetet látni, amíg abba nem hagyja a gépelést.

4. _.find

Ahelyett, hogy egy tömböt iterálnánk egy ciklus segítségével egy adott objektum keresésére, egyszerűen használhatjuk a _.find-et. Ez szép, de nem ez az egyetlen dolog, amit a _.find segítségével tehetünk. Egy objektumot több tulajdonság segítségével is megkereshetünk egyetlen kódsorral. Nézze meg!

5. _.get és ._set

Ezért egy kicsit csalni fogok azzal, hogy bemutatok 2 függvényt, amelyek majdnem ugyanazt csinálják. A _.get egy tulajdonság értékét adja vissza egy objektumból, a _.set pedig, nos, kitaláltad, egy tulajdonságot állít be egy értékkel. Semmi különös, kivéve, hogy egy tulajdonságot elérhetünk az elérési útvonalával.
Lássunk egy példát.

A _.set használatakor, ha az elérési útvonal nem létezik, akkor létrehozza azt. Nincs többé “Cannot set property ‘items’ of undefined” hiba. A _.get használatával, ha az elérési útvonal nem létezik, hiba helyett undefined-et ad vissza. Megadhatsz egy alapértelmezett értéket is (harmadik argumentum), ha az útvonal feloldása undefined.

6. _.deburr

Ez elég egyszerű. Eltávolítja az összes “kombináló diakritikus jelet”, így az “é”-ből “e” lesz.

Ez egy jó szokás, hogy a keresőfunkcióhoz a szöveget deburráljuk, ha van nemzetköziesítés és lokalizáció.

7. _.keyBy

Az_.keyBy az egyik kedvencem. Sokat segít, amikor egy adott tulajdonsággal rendelkező objektumot próbálunk megszerezni. Tegyük fel, hogy 100 blogbejegyzésünk van, és a “34abc” azonosítóval rendelkező bejegyzést szeretnénk megszerezni. Hogyan tudjuk ezt elérni? Lássuk!

Amikor egy kiszolgáló egy objektumgyűjteményt tömbként ad vissza, ez a függvény segíthet a rendezésben. A második argumentum lehet egy függvény is.

8. _.reduce

_.reduce egy kicsit olyan, mint egy szűrőfüggvény. Az egyetlen különbség, hogy a visszaadott objektum formáját megválaszthatjuk. Ha nem érted, hogy mit akarok mondani, az normális, van rá példa, hogy miért.

Ouch! Ez egy kemény dolog. Tehát alapvetően egy új objektumot adunk vissza a koruk szerint csoportosított felhasználókkal, és csak a 18 és 59 év közötti felhasználókkal. Ez a segédfüggvény a Lodash egyik leggyakrabban használt függvénye. Az ES6 része is. Szeretnék rámutatni 2 gyakori hibára is, ne felejtsük el visszaadni az eredményt a függvény végén, és ne felejtsük el megadni az eredmény alapértelmezett értékét a harmadik argumentumként (itt {}).

9. _.cloneDeep

A legnehezebb után következik a legegyszerűbb. Az _.cloneDeep egy objektumot klónoz. Nem vicc! Az új objektumnak új címe is lesz a memóriában, így nem törik össze egy tulajdonságot az eredeti objektumból.

10 _. sortedUniq

Ezzel nem ad vissza minden duplikált értéket. Ezt általában teljesítményi okokból használjuk, mert kifejezetten a rendezett tömbökre vonatkozik.

Ez csak akkor hasznos, ha nagy tömbökkel foglalkozunk. Ha jobb teljesítményt akarsz, akkor rendezd a tömbödet, és olyan függvényeket használj, amelyek jobban működnek a rendezett tömbökkel. Számos más ilyen függvény is létezik a Lodash segítségével. Megnézheted a _.sortedIndex, _.sortedIndexBy, _.sortedIndexOf, _.sortedLastIndex, _.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy.

Következtetés

A Lodash rengeteg segédfüggvényt biztosít, hogy időt takaríts meg. A könyvtár nagyon könnyű (69 KB), hatékony, népszerű és kedvelt (több mint 18 000 indítás a Githubon). Nagyon gyakran frissítik, és amikor legutóbb megnéztem a Github oldalukat, 0 issue volt (Github oldal). Ha jelenleg nem használod, nagyon könnyen beépíthető egy meglévő projektbe. Ha hamarosan új projektet indítasz, akkor tényleg érdemes elgondolkodnod a használatán. Ha azért vagy itt, mert nem tudod, hogy használd-e vagy sem … nos, igen, használd. A szerző Stackoverflow-n adott válaszával fejezem be:

A Lo-Dash-t azért hoztam létre, hogy konzisztensebb környezetközi iterációs támogatást biztosítsak tömbök, karakterláncok, objektumok és arguments objektumok1 számára. Azóta az Underscore szuperkészletévé vált, következetesebb API viselkedést, több funkciót (mint például AMD-támogatás, deep clone és deep merge), alaposabb dokumentációt és egységteszteket (Node, Ringo, Rhino, Narwhal, PhantomJS és böngészőkben futó teszteket), jobb általános teljesítményt és optimalizálásokat a nagy tömbök/objektumok iterációjára, valamint nagyobb rugalmasságot biztosít az egyéni buildekkel és sablon-előfordító segédprogramokkal.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.