Using lodash, what would be a good way to count the number of objects in a collection conditionally? Say I wanted to count the number of objects where
a < 4
in the following collection
[{a : 1}, {a : 2}, {a : 3}, {a : 4}, {a : 5}, {a : 6}]
You can use countBy
:
const total = _.countBy(
array,
({ a }) => a < 4 ? 'lessThanFour' : 'greaterThanFour'
).lessThanFour
Using sumBy
:
const total = _.sumBy(
array,
({ a }) => Number(a < 4)
);
And here's the same but with lodash/fp
:
const count = _.sumBy(_.flow(_.get('a'), _.lt(4), Number), objects);
Below you can find an easy way to achieve that using the filter method:
var b = _.filter(a, function(o) { if (o.a < 4) return o }).length;