Lodash.js y sus funciones de filtrado

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.

'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.

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.

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.

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.

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.

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.

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.

Ver todos los comentarios en https://www.genbeta.com

VER 0 Comentario

Portada de Genbeta