Lodash.js es una de las librerías de referencia en JavaScript a la hora de trabajar con colecciones de objetos. Lodash fue en su momento un fork de Underscore.js pero con el paso del tiempo se ha rediseñado por completo y añadido mayor funcionalidad. Vamos a abordar en este artículo las funciones de filtrado. Para ello partimos de una colección de personas que tienen nombre y edad.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 'use strict' var _ = require( 'lodash' ); var personas = [{ nombre: "pepe" , edad: 20 }, { nombre: "ana" , edad: 30 }, { nombre: "pedro" , edad: 40 }, { nombre: "gema" , edad: 50 }, { nombre: "andres" , edad: 50 } ]; |
filter :La primera operación que vamos a realizar es la de filtrado que recordemos esta también soportada en ES5. En este caso vamos a quedarnos con las personas cuya edad es de 50 años.
1 2 3 4 5 6 7 | var filtro=_.filter(personas, function (persona) { return persona.edad===50; }); console.log(filtro); |

where: Esta función se encarga de realizar un filtrado pero en este caso le pasamos como parámetros las condiciones que un objeto tiene que cumplir para encajar en la búsqueda.
1 2 | var busqueda=_.where(personas, {nombre: "andres" ,edad:50}); console.log(busqueda); |

find:Como su nombre indica esta función se encarga de localizar un objeto dentro de una colección. Solo devuelve el primero que localiza.
1 2 3 4 5 | var primerMayor= _.find(personas, function (persona) { return persona.edad>18; }); |

findWhere :Similar a la anterior en este caso se trata de buscar el primer objeto que cumpla con las condiciones de los parámetros de búsqueda.
1 2 3 | var busquedaUno=_.findWhere(personas, {edad:50}); console.log(busquedaUno); |

pluck :Nos permite filtrar pero de una forma diferente a la habitual.Pluck se encarga de filtrar por columna y quedarnos con una columna concreta del array, en este caso las edades.
1 2 3 | var edades=_.pluck(personas, 'edad' ); console.log(edades); |

reduce:Para entender bien para que sirve pluck es bueno apoyarse en la función reduce que se encarga de reducir un array a un único elemento aplicando una operación. En este caso aplicamos reduce al array de edades. Las sumamos todas y partimos por la longitud del array para obtener la media.
1 2 3 4 5 | var total= edades.reduce( function (total,item) { return total+item; }); console.log(total/edades.length); |

Lodash incluye muchas otras funciones , hemos abordado las principales orientadas a filtrado.