«Un niño pequeño sosteniendo un libro con una expresión de sorpresa en su cara» por Ben White en Unsplash
Vincent D'amour
Vincent D’amour

Follow

Sep 2, 2016 – 4 min read

¿Qué es Lodash?

Lodash es un superconjunto de Underscore. ¿Qué es Underscore? Underscore es «un montón de útiles ayudantes de programación funcional sin extender ningún objeto incorporado». En resumen, Lodash es una biblioteca de ayuda JS para arrays, cadenas y objetos. La documentación está aquí: https://lodash.com/docs

¿Por qué usar Lodash?

Te ayudará a tratar con todos los tipos de objetos y ahorrarás tiempo al no codificar funciones genéricas. Tu código también será más limpio con menos líneas y funcionará en todos los navegadores. Si no lo estás usando actualmente, deberías pensarlo seriamente.

1. _.assign

_.assign es el equivalente al operador spread de ES6. Es bastante fácil de entender, asigna propiedades de uno o muchos objetos a un objeto fuente.

2. _.times

_.times recibe como argumentos el número de iteraciones y una función a ejecutar n veces y devuelve un array con los resultados. Muy útil cuando se crean datos de prueba dinámicos.

3. _.debounce

_.debounce invocará una función después de una cierta cantidad de tiempo desde la última vez que fue invocada.

En este ejemplo, la función validarEmail será invocada después de 500ms para que el mensaje de error no se muestre instantáneamente. El temporizador de 500ms se reiniciará en cada pulsación. De esta manera, el usuario no verá un mensaje de error hasta que deje de escribir.

4. _.find

En lugar de iterar a través de un array con un bucle para encontrar un objeto específico, podemos simplemente usar _.find. Eso está bien, pero esto no es lo único que puedes hacer con _.find. También puedes encontrar un objeto usando múltiples propiedades con una sola línea de código. Echa un vistazo!

5. _.get y ._set

Para este voy a hacer un poco de trampa presentando 2 funciones que hacen casi lo mismo. _.get devolverá el valor de una propiedad de un objeto y _.set, bueno, lo has adivinado, establecerá una propiedad con un valor. Nada especial excepto que puedes acceder a una propiedad con su ruta.
Veamos un ejemplo.

Al usar _.set, si la ruta no existe, se creará. Se acabó el error «No se puede establecer la propiedad ‘items’ de undefined». Con _.get, si la ruta no existe, devolverá undefined en lugar de un error. También puede especificar un valor por defecto (tercer argumento) si la ruta resuelve undefined.

6. _.deburr

Este es bastante simple. Elimina todos los «signos diacríticos combinados», por lo que «é» se convierte en «e».

Es una buena costumbre desbarbar el texto para una función de búsqueda cuando hay internacionalización y localización.

7. _.keyBy

_.keyBy es uno de mis favoritos. Ayuda mucho cuando se trata de obtener un objeto con una propiedad específica. Digamos que tenemos 100 posts del blog y queremos obtener el post con Id «34abc». ¿Cómo podemos conseguirlo? Veamos:

Cada vez que un servidor devuelve una colección de objetos como un array, esta función puede ayudarte a organizarla. El segundo argumento también puede ser una función.

8. _.reduce

_.reduce es un poco como una función de filtro. La única diferencia es que puedes elegir la forma del objeto devuelto. Si no entiendes lo que intento decir, es normal, hay un ejemplo para ello.

¡Ay! Esto sí que es difícil. Pues básicamente, devolvemos un nuevo objeto con los usuarios agrupados por su edad y sólo para los usuarios entre 18 y 59 años. Esta función helper es una de las más utilizadas de Lodash. También es parte de ES6. También quiero señalar 2 errores comunes, no olvidar devolver el resultado al final de la función y no olvidar especificar el valor por defecto del resultado como tercer argumento (aquí {}).

9. _.cloneDeep

Después de la más difícil, la más fácil. _.cloneDeep clonará un objeto. No es una broma. El nuevo objeto también tendrá una nueva dirección en memoria por lo que no aplastará una propiedad del objeto original.

10 _.sortedUniq

Con esta, no se devolverán todos los valores duplicados. Esto se utiliza generalmente por razones de rendimiento, ya que es específicamente para los arrays ordenados.

Este es útil sólo si usted trata con un gran array. Si quieres un mejor rendimiento debes ordenar tu array y utilizar funciones que funcionen mejor con arrays ordenados. Hay varias otras funciones como esta con Lodash. Puedes echar un vistazo a _.sortedIndex, _.sortedIndexBy, _.sortedIndexOf, _.sortedLastIndex, _.sortedLastIndexBy, _.sortedLastIndexOf, _.sortedUniq, _.sortedUniqBy.

Conclusión

Lodash proporciona un montón de funciones de ayuda para ayudarte a ahorrar tiempo. La biblioteca es muy ligera (69 KB), eficiente, popular y querida (más de 18.000 inicios en Github). Se actualiza muy a menudo y la última vez que miré en su página de Github, había 0 issue (página de Github). Si no lo estás usando actualmente es muy fácil de incorporar en un proyecto existente. Si vas a empezar un nuevo proyecto pronto, deberías pensar en usarlo. Si estás aquí porque no sabes si deberías usarlo o no… bueno, sí deberías. Concluiré con una respuesta dada por el autor en Stackoverflow:

Creé Lo-Dash para proporcionar un soporte de iteración más consistente entre entornos para arrays, cadenas, objetos y arguments objetos1. Desde entonces se ha convertido en un superconjunto de Underscore, proporcionando un comportamiento más consistente de la API, más características (como el soporte de AMD, deep clone y deep merge), una documentación y pruebas unitarias más completas (pruebas que se ejecutan en Node, Ringo, Rhino, Narwhal, PhantomJS y navegadores), un mejor rendimiento general y optimizaciones para la iteración de arrays/objetos grandes, y más flexibilidad con construcciones personalizadas y utilidades de precompilación de plantillas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.