Che cos’è Lodash?
Lodash è un superset di Underscore. Cos’è Underscore? Underscore è “un’intera serie di utili helper di programmazione funzionale senza estendere alcun oggetto incorporato”. In breve, Lodash è una libreria di helper JS per array, stringhe e oggetti. La documentazione è qui: https://lodash.com/docs
Perché usare Lodash?
Vi aiuterà a trattare con tutti i tipi di oggetti e risparmierete tempo non codificando funzioni generiche. Il vostro codice sarà anche più pulito con meno linee e funzionerà su tutti i browser. Se attualmente non lo state usando, dovreste pensarci seriamente.
1. _.assign
_.assign è l’equivalente dell’operatore spread di ES6. È abbastanza facile da capire, assegna le proprietà di uno o molti oggetti a un oggetto sorgente.
2. _.times
_.times riceve come argomenti il numero di iterazioni e una funzione da eseguire n volte e restituisce un array dei risultati. Molto utile quando si creano dati di test dinamici.
3. _.debounce
_.debounce invocherà una funzione dopo un certo tempo dall’ultima volta che è stata invocata.
In questo esempio, la funzione validateEmail sarà invocata dopo 500ms in modo che il messaggio di errore non venga mostrato immediatamente. Il timer di 500ms si resetterà ad ogni pressione del tasto. In questo modo, l’utente non vedrà un messaggio di errore finché non smetterà di digitare.
4. _.find
Invece di iterare attraverso un array con un ciclo per trovare un oggetto specifico, possiamo semplicemente usare _.find. Questo è bello, ma questa non è l’unica cosa che potete fare con _.find. Potete anche trovare un oggetto usando più proprietà con una sola riga di codice. Date un’occhiata!
5. _.get e ._set
Per questo baro un po’ presentando 2 funzioni che fanno quasi la stessa cosa. _.get restituisce il valore di una proprietà da un oggetto e _.set, beh, avete indovinato, imposta una proprietà con un valore. Niente di speciale, tranne che si può accedere a una proprietà con il suo percorso.
Vediamo un esempio.
Quando si usa _.set, se il percorso non esiste, verrà creato. Niente più errore “Impossibile impostare la proprietà ‘items’ di undefined”. Con _.get, se il percorso non esiste, restituirà undefined invece di un errore. Puoi anche specificare un valore predefinito (terzo argomento) se il percorso si risolve in undefined.
6. _.deburr
Questo è abbastanza semplice. Rimuove tutti i “segni diacritici combinatori”, quindi “é” diventa “e”.
È una buona abitudine sbavare il testo per una funzione di ricerca quando c’è internazionalizzazione e localizzazione.
7. _.keyBy
_.keyBy è uno dei miei preferiti. Aiuta molto quando si cerca di ottenere un oggetto con una proprietà specifica. Diciamo che abbiamo 100 post sul blog e vogliamo ottenere il post con Id “34abc”. Come possiamo ottenerlo? Vediamo!
Ogni volta che un server restituisce una collezione di oggetti come array, questa funzione può aiutarvi a organizzarla. Anche il secondo argomento può essere una funzione.
8. _.reduce
_.reduce è un po’ come una funzione filtro. L’unica differenza è che potete scegliere la forma dell’oggetto restituito. Se non capite cosa sto cercando di dire, è normale, c’è un esempio per questo motivo.
Ouch! Questa è una cosa difficile. Quindi, fondamentalmente, restituiamo un nuovo oggetto con gli utenti raggruppati per la loro età e solo per gli utenti tra i 18 e i 59 anni. Questa funzione helper è una delle più usate da Lodash. Fa anche parte di ES6. Voglio anche segnalare 2 errori comuni, non dimenticare di restituire il risultato alla fine della funzione e non dimenticare di specificare il valore predefinito per il risultato come terzo argomento (qui {}).
9. _.cloneDeep
Dopo la più difficile, la più facile. _.cloneDeep clonerà un oggetto. Non scherziamo! Il nuovo oggetto avrà anche un nuovo indirizzo in memoria in modo da non schiacciare una proprietà dell’oggetto originale.
10 _. sortedUniq
Con questo, tutti i valori duplicati non saranno restituiti. Questo è di solito usato per ragioni di performance, perché è specifico per gli array ordinati.
Questo è utile solo se avete a che fare con array grandi. Se volete migliori prestazioni dovreste ordinare i vostri array e usare funzioni che lavorano meglio con gli array ordinati. Ci sono molte altre funzioni come questa con Lodash. Potete dare un’occhiata a _.sortedIndex, _.sortedIndexBy, _.sortedIndexOf, _.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy.
Conclusione
Lodash fornisce un sacco di funzioni di aiuto per farvi risparmiare tempo. La libreria è molto leggera (69 KB), efficiente, popolare e amata (più di 18.000 avviamenti su Github). Viene aggiornata molto spesso e l’ultima volta che ho guardato la loro pagina Github, c’era 0 problemi (pagina Github). Se non lo state usando attualmente è molto facile da incorporare in un progetto esistente. Se state iniziando presto un nuovo progetto, dovreste davvero pensare di usarlo. Se siete qui perché non sapete se dovreste usarlo o meno … beh, sì, dovreste. Concludo con una risposta data dall’autore su Stackoverflow:
Ho creato Lo-Dash per fornire un supporto più coerente all’iterazione tra ambienti per array, stringhe, oggetti e
arguments
oggetti1. Da allora è diventato un superset di Underscore, fornendo un comportamento API più coerente, più caratteristiche (come il supporto AMD, deep clone e deep merge), una documentazione e test unitari più approfonditi (test che girano in Node, Ringo, Rhino, Narwhal, PhantomJS e browser), migliori prestazioni generali e ottimizzazioni per grandi array/ iterazione di oggetti, e più flessibilità con build personalizzate e utilità di precompilazione dei template.
.