Modularidad y rendimiento en Javascript con Lodash

Durante mi tiempo de desarrollo en Javascript, hay una utilidad que se me ha hecho indispensable: la librería Lodash.

Lodash es una librería Javascript que provee utilidades de todo tipo para manejo de strings, arrays y objetos. Su predecesora fue Underscore, que provee funcionalidades muy similares, sin embargo es superior a Underscore en al menos dos aspectos importantes:

  1. En rendimiento; para esto ustedes son libres de probar en jsperf; y
  2. en palabras de su creador, para proveer consistencia en el manejo de distintos tipos de datos (a diferencia de Underscore).

Entre las funciones proveídas también se encuentran alternativas a las nativamente incluídas en Javascript como por ejemplo las comúnmente usadas en arrays .map, .filter y .reduce.

Existen muchas funciones muy útiles. Al momento de enfrentarme a problemas que involucraban manejo de arrays/objetos/strings interiormente ejecutaba la siguiente función:

function lodashSaveMe(problem) {  
    if ( IKnowHowToDoIt(problem) ) return win();
    if ( searchInLodash(problem) ) return win();
    beSad(problem);
}

Y claramente beSad() es:

function beSad(problem) {  
    _.each(problemParts(problem), function(tinyProblem) {
        lodashSaveMe(tinyProblem);
    }
}

Un preview de un par de funciones de las que tiendo a usar bastante:

  • _.find: Para encontrar un objeto en particular dentro de un arreglo de ellos.

  • _.groupBy(): Al tener un arreglo de objetos, para agruparlos por algun atributo(o alguna función) dentro de ellos.

  • _.sortBy(): Para ordenar un arreglo de objetos.

  • _.uniq(): Para eliminar duplicados en un arreglo.

Si les suenan interesantes sigan leyendo la documentación oficial, está bastante completa y permite introducirse bien en esta muy útil librería.