En el post de hoy analizaremos las ventajas de uso de las Bibliotecas Lodash, una biblioteca moderna de utilidades de JavaScript que actualmente está dando mucho que hablar. ¡Atentos!
Lodash es una librería de referencia en JavaScript. Además, es el sucesor más famoso de underscore.js.
Se usa para simplificar el manejo y edición de objetos, arrays, etc. ya que este proporciona muchos métodos de utilidad para hacerlo.
A su vez, simplificando este trabajo conseguimos que nuestro código sea mucho más legible y fácil de seguir para terceras personas.
Como bien se ha dicho antes, es el sucesor más famoso de underscore.js. En un primer momento fue un simple “fork” y se añadieron más funciones.
A día de hoy ha sido rediseñada por completo.
La información en GitHub la tienes aquí.
La documentación la tienes aquí.
Navegador web
NPM
npm install –save lodash
Uso en NodeJS (En nuestro file de Node, cargamos el componente)
const _ = require(‘lodash’)
A continuación, vamos a ver algunos ejemplos pequeños sobre cómo se ejecutarían ciertas funciones con Lodash y cómo las haríamos si no contásemos con la misma.
// Obtener el nombre del primer hermano de cada persona var personas = [{ "nombre": "Jose Luis", "hermanos": [{"nombre":"David"}, {"nombre": "Sonia"}] }, { "nombre": "Alfonso Manuel", "hermanos": [{"nombre":"Gustavo"}, {"nombre": "Juan"}] }]; // Array's map method. var nombres = personas.map(function(item){ return item.hermanos[0].nombre; }); // [ 'David', 'Gustavo' ] // Lodash var nombresBis = _.map(personas, 'hermanos[0].nombre'); // [ 'David', 'Gustavo' ]
// Obtener un número aleatorio entre 15 y 20. // Función nativa function getRandomNumber(min, max){ return Math.floor(Math.random() * (max - min + 1)) + min; } var random = getRandomNumber(15, 20); // ej: 16 // Lodash var randomTwo = _.random(15, 20); // ej: 19
// Adding extend function to Object.prototype Object.prototype.extend = function(obj) { for (var i in obj) { if (obj.hasOwnProperty(i)) { this[i] = obj[i]; } } }; var objA = {"nombre": "Jose Luis", "coche": "BMW"}; var objB = {"nombre": "Alfonso", "edad": 24}; objA.extend(objB); // {"nombre": "Alfonso", "edad": 24, "coche": "BMW"} // Lodash _.assign(objA, objB); // {"nombre": "Alfonso", "edad": 24, "coche": "BMW"}
var personas = [{ "nombre": "Jose Luis" }, { "nombre": "Alfonso Manuel" }, { "nombre": "Domingo" }]; var last = personas[personas.length - 1]; // Domingo var lastTwo = _.last(personas); // Domingo
Lodash es, sin lugar a dudas, una muy buena biblioteca y de gran utilidad. Continuaré usándola en todos mis proyectos de NodeJS.
Asimismo, destacaría ventajas como la reducción de la cantidad de código repetitivo.
Además, también mejora la claridad de la lógica de mi aplicación.
Sin embargo, para lo que más me ha servido ha sido para pensar de una manera más funcional. Desmenuzo mi aplicación en módulos más pequeños con un enfoque singular y sin efectos secundarios.
Finalmente, esta modularidad me permite escribir un código de más calidad.