"Count where" in a collection
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;
You can use _.countBy:
const count = _.countBy(arr, o => o.a < 4).true
Solution
You can use countBy
:
const total = _.countBy(
array,
({ a }) => a < 4 ? 'lessThanFour' : 'greaterThanFour'
).lessThanFour
Alternative
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);