Documentación oficial: Lodash
Lodash es una biblioteca de JavaScript que proporciona una amplia variedad de funciones de utilidad para tareas de programación comunes, facilitando la manipulación de arrays, objetos, cadenas, y otros tipos de datos. Lodash está diseñado siguiendo el paradigma de la programación funcional, lo que permite escribir código más limpio, modular y mantenible.
! Si estás usando algún framework puedes importar solo el módulo/método que necesites para no importar toda la biblioteca.
Por ejemplo, si quieres solo importar el método merge en tu proyecto React:
npm i --save lodash.merge
Crea una matriz sin duplicados, permitiéndote especificar un criterio para determinar la unicidad de los elementos. Es especialmente útil para eliminar duplicados en arrays de objetos basados en una propiedad específica.
const _ = require('lodash');
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' },
{ id: 3, name: 'Charlie' },
{ id: 2, name: 'Bob' }
];
const uniqueUsers = _.uniqBy(users, 'id');
console.log(uniqueUsers);
// [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' } ]se utiliza para combinar múltiples objetos en uno solo, manejando la fusión de propiedades de manera profunda y recursiva.
_.merge(object, [sources])const object = {
'a': [{ 'b': 2 }, { 'd': 4 }]
};
const other = {
'a': [{ 'c': 3 }, { 'e': 5 }]
};
_.merge(object, other);
// { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }Se utiliza para comparar dos valores y determinar si son equivalentes en estructura y valor. Esta función es especialmente útil cuando necesitas comparar objetos complejos, ya que === en JavaScript solo compara la igualdad de referencia para objetos y no profundiza en la comparación de las propiedades de los objetos.
const object = { 'a': 1 };
const other = { 'a': 1 };
_.isEqual(object, other); // true
object === other; // falseSe utiliza para crear un nuevo objeto omitiendo las propiedades especificadas. Es especialmente útil cuando quieres crear una versión filtrada de un objeto sin ciertas propiedades.
const object = { 'a': 1, 'b': '2', 'c': 3 };
_.omit(object, ['a', 'c']); // { 'b': '2' }Se utiliza para crear un nuevo objeto seleccionando solo las propiedades especificadas.
const object = { 'a': 1, 'b': '2', 'c': 3 };
_.pick(object, ['a', 'c']); // { 'a': 1, 'c': 3 }Se utiliza para ordenar una colección basada en los valores de una propiedad específica o un criterio definido.
const users = [
{ 'user': 'fred', 'age': 48 },
{ 'user': 'barney', 'age': 36 },
{ 'user': 'fred', 'age': 40 },
{ 'user': 'barney', 'age': 34 }
];
_.sortBy(users, ['user', 'age']); // objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]Se utiliza para mezclar aleatoriamente los elementos de una colección, como un arreglo.
_.shuffle([1, 2, 3, 4]); // [4, 1, 3, 2]Proporciona una serie de métodos útiles para manipular cadenas de texto, incluyendo la conversión entre diferentes estilos de escritura como camelCase, kebab-case (kebabCase), snake_case (snakeCase), entre otros.
const myString = 'hello_world';
const camelCaseString = _.camelCase(myString);
console.log(camelCaseString); // helloWorldconst myString = 'HelloWorld';
const kebabCaseString = _.kebabCase(myString);
console.log(kebabCaseString); // hello-worldconst myString = 'HelloWorld';
const snakeCaseString = _.snakeCase(myString);
console.log(snakeCaseString); // hello_world