“En lille dreng med en bog i hånden og et overrasket udtryk på his face” af Ben White på Unsplash
Vincent D'amour
Vincent D’amourFollow

2. sep, 2016 – 4 min læsning

Hvad er Lodash?

Lodash er et supersæt af Underscore. Hvad er Underscore? Underscore er ” et helt rod af nyttige funktionelle programmeringshjælpere uden at udvide nogen indbyggede objekter.” Kort sagt er Lodash et JS-hjælperbibliotek til arrays, strings og objekter. Dokumentation er her: https://lodash.com/docs

Hvorfor bruge Lodash?

Det vil hjælpe dig med at håndtere alle typer af objekter, og du vil spare tid ved ikke at kode generiske funktioner. Din kode vil også blive renere med færre linjer, og den vil fungere på alle browsere. Hvis du ikke bruger det i øjeblikket, bør du seriøst tænke over det.

1. _.assign

_.assign er det tilsvarende til spredningsoperatoren fra ES6. Den er ret nem at forstå, den tildeler egenskaber for et eller mange objekter til et kildeobjekt.

2. _.times

_.times modtager som argumenter antallet af iterationer og en funktion, der skal udføres n gange, og returnerer et array med resultaterne. Meget nyttigt, når der oprettes dynamiske testdata.

3. _.debounce

_.debounce vil påkalde en funktion efter et bestemt tidsrum siden sidste gang, den blev påkaldt.

I dette eksempel vil funktionen validateEmail blive påkaldt efter 500 ms, så fejlmeddelelsen ikke vises med det samme. Timeren på 500 ms vil blive nulstillet ved hver tastning. På denne måde vil brugeren ikke se en fejlmeddelelse, før han holder op med at skrive.

4. _.find

I stedet for at iterere gennem et array med en løkke for at finde et bestemt objekt kan vi blot bruge _.find. Det er rart, men det er ikke det eneste, du kan gøre med _.find. Du kan også finde et objekt ved hjælp af flere egenskaber med en enkelt linje kode. Tag et kig!

5. _.get og ._set

For denne gang vil jeg snyde lidt ved at præsentere 2 funktioner, der gør næsten det samme. _.get vil returnere en egenskabsværdi fra et objekt og _.set vil, ja du gættede det, sætte en egenskab med en værdi. Intet specielt, bortset fra at man kan tilgå en egenskab med dens sti.
Lad os se et eksempel.

Når man bruger _.set, vil stien blive oprettet, hvis den ikke eksisterer. Ikke mere “Cannot set property ‘items’ of undefined”-fejl. Med _.get vil stien, hvis den ikke findes, returnere udefineret i stedet for en fejl. Du kan også angive en standardværdi (tredje argument), hvis stien opløses til undefined.

6. _.deburr

Denne her er ret enkel. Den fjerner alle “kombinerende diakritiske tegn”, så “é” bliver til “e”.

Det er en god vane at deburrere tekst til en søgefunktion, når der er internationalisering og lokalisering.

7. _.keyBy

_.keyBy er en af mine favoritter. Det hjælper meget, når man forsøger at få et objekt med en bestemt egenskab. Lad os sige, at vi har 100 blogindlæg, og vi ønsker at hente indlægget med Id “34abc”. Hvordan kan vi opnå dette? Lad os se!

Når en server returnerer en objektsamling som et array, kan denne funktion hjælpe dig med at organisere den. Det andet argument kan også være en funktion.

8. _.reduce

_.reduce er en lille smule som en filterfunktion. Den eneste forskel er, at du kan vælge formen på det returnerede objekt. Hvis du ikke forstår, hvad jeg prøver at sige, er det normalt, der er et eksempel af denne grund.

Ouch! Dette er en svær en. Så grundlæggende returnerer vi et nyt objekt med brugere grupperet efter deres alder og kun for bruger mellem 18 og 59. Denne hjælpefunktion er en af de mest brugte fra Lodash. Den er også en del af ES6. Jeg vil også gerne påpege 2 almindelige fejl, glem ikke at returnere resultatet i slutningen af funktionen og glem ikke at angive standardværdien for resultatet som det tredje argument (her {}).

9. _.cloneDeep

Efter den sværeste kommer den letteste. _.cloneDeep vil klone et objekt. No kidding! Det nye objekt vil også have en ny adresse i hukommelsen, så du vil ikke knuse en egenskab fra det oprindelige objekt.

10 _. sortedUniq

Med denne her vil alle duplikerede værdier ikke blive returneret. Dette bruges normalt af hensyn til ydeevnen, fordi det er specielt til de sorterede arrays.

Dette er kun nyttigt, hvis du har med store array at gøre. Hvis du vil have bedre ydeevne, bør du sortere dit array og bruge funktioner, der fungerer bedre med sorterede arrays. Der er flere andre funktioner som denne med Lodash. Du kan tage et kig på _.sortedIndex, _.sortedIndexBy, _.sortedIndexOf, _.sortedLastIndex, _.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy.

Slutning

Lodash indeholder et væld af hjælpefunktioner, som hjælper dig med at spare tid. Biblioteket er meget let (69 KB), effektivt, populært og elsket (mere end 18.000 starter på Github). Det opdateres meget ofte, og sidste gang jeg kiggede på deres Github-side, var der 0 issue (Github-side). Hvis du ikke bruger det i øjeblikket, er det meget nemt at indarbejde i et eksisterende projekt. Hvis du starter et nyt projekt snart, bør du virkelig overveje at bruge det. Hvis du er her, fordi du ikke ved, om du skal bruge det eller ej … ja, så ja, det skal du. Jeg vil slutte med et svar givet af forfatteren på Stackoverflow:

Jeg skabte Lo-Dash for at give mere konsistent iterationsunderstøttelse på tværs af miljøer for arrays, strings, objekter og arguments objekter1. Det er siden blevet en supersætning af Underscore, der giver mere konsistent API-adfærd, flere funktioner (som AMD-understøttelse, deep clone og deep merge), mere grundig dokumentation og enhedstests (tests, der kører i Node, Ringo, Rhino, Narwhal, PhantomJS og browsere), bedre generel ydeevne og optimeringer for store arrays/objekt-iteration og mere fleksibilitet med brugerdefinerede builds og skabelonforkompileringsværktøjer.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.