„Malý chlapec drží knihu s překvapeným výrazem. v obličeji“ od Bena Whitea na Unsplash
Vincent D'amour
Vincent D’amour

Sledovat

2. září, 2016 – 4 minuty čtení

Co je to Lodash?

Lodash je nadmnožina Underscore. Co je Underscore? Underscore je “ celá spousta užitečných pomocníků pro funkcionální programování, aniž by rozšiřoval nějaké vestavěné objekty“. Stručně řečeno, Lodash je pomocná knihovna JS pro pole, řetězce a objekty. Dokumentaci najdete zde: https://lodash.com/docs

Proč používat Lodash?

Pomůže vám pracovat se všemi typy objektů a ušetříte čas tím, že nebudete kódovat obecné funkce. Váš kód bude také čistší, bude mít méně řádků a bude fungovat ve všech prohlížečích. Pokud ji v současné době nepoužíváte, měli byste o tom vážně uvažovat.

1. _.assign

_.assign je ekvivalentem operátoru spread z ES6. Je celkem snadno pochopitelný, přiřazuje vlastnosti jednoho nebo více objektů zdrojovému objektu.

2. _.times

_.times přijímá jako argumenty počet iterací a funkci, která se má n-krát provést, a vrací pole výsledků. Velmi užitečné při vytváření dynamických testovacích dat.

3. _.debounce

_.debounce vyvolá funkci po určité době od jejího posledního vyvolání.

V tomto příkladu bude funkce validateEmail vyvolána po 500 ms, takže se chybová zpráva nezobrazí okamžitě. Časovač 500ms se vynuluje při každém zvednutí klávesy. Tímto způsobem se uživateli nezobrazí chybová zpráva, dokud nepřestane psát.

4. _.find

Místo iterace přes pole pomocí cyklu pro nalezení konkrétního objektu můžeme jednoduše použít _.find. To je pěkné, ale není to jediná věc, kterou lze pomocí _.find dělat. Můžete také najít objekt pomocí více vlastností pomocí jediného řádku kódu. Podívejte se na to!

5. _.get a ._set

Pro tento případ budu trochu podvádět a uvedu 2 funkce, které dělají téměř totéž. Funkce _.get vrátí hodnotu vlastnosti z objektu a funkce _.set, no hádáte správně, nastaví vlastnost s hodnotou. Nic zvláštního kromě toho, že k vlastnosti můžete přistupovat pomocí cesty.
Podívejme se na příklad.

Při použití _.set, pokud cesta neexistuje, bude vytvořena. Už žádná chyba „Nelze nastavit vlastnost ‚items‘ nedefinované“. Při použití _.get, pokud cesta neexistuje, se místo chyby vrátí hodnota undefined. Můžete také zadat výchozí hodnotu (třetí argument), pokud se cesta resolvuje na undefined.

6. _.deburr

Tohle je docela jednoduché. Odstraní všechna „kombinující diakritická znaménka“, takže z „é“ se stane „e“.

Je dobrým zvykem deburrovat text pro vyhledávací funkci při internacionalizaci a lokalizaci.

7. _.keyBy

_.keyBy patří mezi mé oblíbené. Hodně pomáhá, když se snažíte získat objekt s určitou vlastností. Řekněme, že máme 100 příspěvků na blogu a chceme získat příspěvek s Id „34abc“. Jak toho můžeme dosáhnout? Podívejme se na to!

Kdykoli server vrací kolekci objektů jako pole, může vám tato funkce pomoci ji uspořádat. Druhým argumentem může být také funkce.

8. _.reduce

_.reduce je něco jako funkce filtru. Jediný rozdíl je v tom, že si můžete vybrat tvar vraceného objektu. Pokud nechápete, co se vám snažím říct, je to normální, z tohoto důvodu existuje příklad.

Uf! Tohle je těžký oříšek. Takže v podstatě vracíme nový objekt s uživateli seskupenými podle jejich věku a pouze pro uživatele mezi 18 a 59 lety. Tato pomocná funkce je jednou z nejpoužívanějších z Lodash. Je také součástí jazyka ES6. Ještě bych chtěl upozornit na 2 časté chyby, nezapomeňte vrátit výsledek na konci funkce a nezapomeňte jako třetí argument (zde {}) uvést výchozí hodnotu výsledku.

9. Na konci funkce je třeba vrátit výsledek. _.cloneDeep

Po té nejtěžší následuje ta nejjednodušší. _.cloneDeep provede klonování objektu. Bez legrace! Nový objekt bude mít také novou adresu v paměti, takže nebudete drtit vlastnost z původního objektu.

10 _. sortedUniq

S tímto nebudou vráceny všechny duplicitní hodnoty. Obvykle se používá z výkonnostních důvodů, protože je určena speciálně pro setříděná pole.

Tato je užitečná pouze v případě, že pracujete s velkým polem. Pokud chcete lepší výkon, měli byste pole setřídit a použít funkce, které lépe pracují se setříděnými poli. V systému Lodash existuje několik dalších podobných funkcí. Můžete se podívat na _.sortedIndex, _.sortedIndexBy, _.sortedIndexOf, _.sortedLastIndex, _.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy.

Závěr

Lodash poskytuje spoustu pomocných funkcí, které vám pomohou ušetřit čas. Knihovna je velmi lehká (69 KB), efektivní, populární a oblíbená (více než 18 000 spuštění na Githubu). Je velmi často aktualizována a když jsem se naposledy díval na jejich stránku Github, bylo tam 0 problémů (stránka Github). Pokud jej v současné době nepoužíváte, je velmi snadné jej začlenit do stávajícího projektu. Pokud brzy začnete nový projekt, měli byste o jeho použití opravdu přemýšlet. Pokud jste zde, protože teď nevíte, jestli byste ji měli používat, nebo ne … no, ano, měli byste. Na závěr uvedu odpověď, kterou autor poskytl na Stackoverflow:

Vytvořil jsem Lo-Dash, abych poskytl konzistentnější podporu iterace napříč prostředími pro pole, řetězce, objekty a arguments objekty1. Od té doby se stal nadmnožinou Underscore a poskytuje konzistentnější chování API, více funkcí (například podporu AMD, hluboké klonování a hluboké slučování), důkladnější dokumentaci a jednotkové testy (testy, které běží v Node, Ringo, Rhino, Narwhal, PhantomJS a prohlížečích), lepší celkový výkon a optimalizace pro iteraci velkých polí/objektů a větší flexibilitu pomocí vlastních sestavení a nástrojů pro předkompilování šablon.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.