countBy()

The countBy method counts the occurences of values in the collection. By default, the method counts the occurrences of every element:

const collection = collect([1, 2, 2, 2, 3]);

const counted = collection.countBy();

counted.all();

//=> {
//=>   1: 1,
//=>   2: 3,
//=>   3: 1,
//=> }

However, you pass a callback to the countBy method to count all items by a custom value:

const collection = collect([
  "alice@gmail.com",
  "bob@yahoo.com",
  "carlos@gmail.com"
]);

const counted = collection.countBy(email => email.split("@")[1]);

counted.all();

//=> {
//=>   'gmail.com': 2,
//=>   'yahoo.com': 1,
//=> }

View source on GitHub