Lodash count() mixin
A mixin that efficiently counts collection items.
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.js"></script>
JavaScript
const obj = [
{name: 'andres'},
{name: 'andres'},
{name: 'andres'},
{name: 'jose'},
];
console.log(_.count(obj));
_.mixin({
count: function(collection, predicate) {
if (!predicate) {
return collection.length;
}
var callback = _.callback(predicate);
return _.reduce(collection, function(result, item) {
return callback(item) ? result + 1 : result;
}, 0);
}
}, { chain: false });
var collection = [ 1, 2, 3 ];
console.clear();
console.log('no filter', _.count(collection));
console.log('greater than 1', _.count(collection, function(item) {
return item > 1;
}));
console.log('less than 3', _.count(collection, function(item) {
return item < 3;
}));
collection = [
{ enabled: true },
{ enabled: false },
{ enabled: true },
{ enabled: false }
];
console.log('matches property', _.count(collection, 'enabled'));
console.log('matches', _.count(collection, { enabled: false }));