Wat is Lodash?
Lodash is een superset van Underscore. Wat is Underscore? Underscore is “een heleboel nuttige functionele programmeerhulpen zonder ingebouwde objecten uit te breiden.” In het kort, Lodash is een JS helper library voor arrays, strings en objecten. Documentatie is hier te vinden: https://lodash.com/docs
Waarom Lodash gebruiken?
Het helpt je om te gaan met alle soorten objecten en het bespaart je tijd doordat je geen generieke functies hoeft te coderen. Uw code zal ook schoner zijn met minder regels en het zal werken op alle browsers. Als u het nu nog niet gebruikt, moet u er serieus over nadenken.
1. _.assign
_.assign is het equivalent van de spread operator uit ES6. Het is vrij eenvoudig te begrijpen, het wijst eigenschappen van een of meer objecten toe aan een bronobject.
2. _.times
_.times ontvangt als argumenten het aantal iteraties en een functie om n keer uit te voeren en geeft een array van de resultaten terug. Erg handig bij het maken van dynamische testgegevens.
3. _.debounce
_.debounce roept een functie op na een bepaalde tijd sinds de laatste keer dat deze werd aangeroepen.
In dit voorbeeld wordt de functie validateEmail na 500 ms aangeroepen, zodat de foutmelding niet direct verschijnt. De timer van 500 ms wordt bij elke toetsup gereset. Op deze manier krijgt de gebruiker pas een foutmelding als hij stopt met typen.
4. _.find
In plaats van met een lus door een array te lopen om een specifiek object te vinden, kunnen we gewoon _.find gebruiken. Dat is mooi, maar dit is niet het enige wat je met _.find kunt doen. Je kunt ook een object vinden met meerdere eigenschappen met een enkele regel code. Kijk maar eens!
5. _.get en ._set
Voor deze zal ik een beetje vals spelen door 2 functies te presenteren die bijna hetzelfde doen. _.get retourneert de waarde van een eigenschap van een object en _.set stelt, nou ja je raadt het al, een eigenschap in met een waarde. Niets bijzonders, behalve dat je een eigenschap kunt benaderen met zijn pad.
Laten we eens een voorbeeld bekijken.
Bij gebruik van _.set, als het pad niet bestaat, zal het worden aangemaakt. Geen foutmelding “Cannot set property ‘items’ of undefined” meer. Met _.get wordt, als het pad niet bestaat, een ongedefinieerde waarde teruggegeven in plaats van een foutmelding. U kunt ook een standaardwaarde opgeven (derde argument) als het pad op ongedefinieerd wordt opgelost.
6. _.deburr
Deze is vrij eenvoudig. Het verwijdert alle “combinatiediakritische tekens”, dus “é” wordt “e”.
Het is een goede gewoonte om tekst te ontbramen voor een zoekfunctie als er sprake is van internationalisatie en lokalisatie.
7. _.keyBy
_.keyBy is een van mijn favorieten. Het helpt veel wanneer je een object met een specifieke eigenschap wilt verkrijgen. Laten we zeggen dat we 100 blog posts hebben en we willen de post met Id “34abc” krijgen. Hoe kunnen we dit bereiken?
Telkens wanneer een server een objectverzameling als een array retourneert, kan deze functie je helpen deze te organiseren. Het tweede argument kan ook een functie zijn.
8. _.reduce
_.reduce lijkt een beetje op een filterfunctie. Het enige verschil is dat je de vorm van het geretourneerde object kunt kiezen. Als u niet begrijpt wat ik probeer te zeggen, is dat normaal, er is een voorbeeld voor deze reden.
Ouch! Dit is een moeilijke. Dus eigenlijk geven we een nieuw object terug met gebruikers gegroepeerd op hun leeftijd en alleen voor gebruikers tussen de 18 en 59. Deze helperfunctie is een van de meest gebruikte van Lodash. Het is ook onderdeel van ES6. Ik wil ook wijzen op 2 veel voorkomende fouten, vergeet niet om het resultaat terug te geven aan het einde van de functie en vergeet niet om de standaard waarde voor het resultaat op te geven als het derde argument (hier {}).
9. _.cloneDeep
Na de moeilijkste, de gemakkelijkste. _.cloneDeep zal een object klonen. Zonder gekheid! Het nieuwe object krijgt ook een nieuw adres in het geheugen, zodat je een eigenschap van het oorspronkelijke object niet verplettert.
10 _. sortedUniq
Met deze worden alle dubbele waarden niet geretourneerd. Deze wordt meestal gebruikt om prestatieredenen, omdat deze specifiek is voor gesorteerde arrays.
Deze is alleen nuttig als u te maken hebt met grote arrays. Als u betere prestaties wilt, moet u uw array sorteren en functies gebruiken die beter werken met gesorteerde arrays. Er zijn verschillende andere functies zoals deze met Lodash. Je kunt eens kijken naar _.sortedIndex, _.sortedIndexBy, _.sortedIndexOf, _.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy.
Conclusie
Lodash biedt een heleboel hulpfuncties die je helpen tijd te besparen. De bibliotheek is zeer licht (69 KB), efficiënt, populair en geliefd (meer dan 18.000 starts op Github). Het wordt zeer vaak bijgewerkt en de laatste keer dat ik op hun Github pagina keek, was er 0 issue (Github pagina). Als je het momenteel niet gebruikt is het heel gemakkelijk om het in een bestaand project te integreren. Als je binnenkort een nieuw project start, zou je echt moeten overwegen om het te gebruiken. Als je hier bent omdat je niet weet of je het moet gebruiken of niet … wel, ja dat moet je. Ik zal afsluiten met een antwoord van de auteur op Stackoverflow:
Ik heb Lo-Dash gemaakt om meer consistente cross-environment iteratie-ondersteuning te bieden voor arrays, strings, objecten en
arguments
objecten1. Sindsdien is het een superset van Underscore geworden, met consistenter API-gedrag, meer functies (zoals AMD-ondersteuning, deep clone en deep merge), grondigere documentatie en unit-tests (tests die werken in Node, Ringo, Rhino, Narwhal, PhantomJS en browsers), betere algehele prestaties en optimalisaties voor grote arrays/object iteratie, en meer flexibiliteit met aangepaste builds en hulpprogramma’s voor voorcompilatie van sjablonen.