2016-02-22 9 views
20

Utilizzando lodash, quale sarebbe un buon modo per contare condizionatamente il numero di oggetti in una collezione? Di 'Ho voluto contare il numero di oggetti in cui"Count where" in una collezione

a < 4 

nelle seguenti collezioni

[{a : 1}, {a : 2}, {a : 3}, {a : 4}, {a : 5}, {a : 6}] 

risposta

26

Qui di seguito potete trovare un modo semplice per ottenere che utilizzando il metodo filter:

var b = _.filter(a, function(o) { if (o.a < 4) return o }).length; 
8

È possibile utilizzare sumBy per questo

const count = _.sumBy(objects, i => (i.a < 4 ? 1 : 0)); 

preferisco lodash/fp così farei

const aIsLessThan4 = _.flow(_.get('a'), _.lt(4), Number) 
const count = _.sumBy(aIsLessThan4, objects)