Array.prototype.reduce()
to map unique values to an object's keys, adding to existing keys every time the same value is encountered.Object.entries()
on the result in combination with Array.prototype.reduce()
to get the most frequent value in the array.const mostFrequent = arr =>
Object.entries(
arr.reduce((a, v) => {
a[v] = a[v] ? a[v] + 1 : 1;
return a;
}, {})
).reduce((a, v) => (v[1] >= a[1] ? v : a), [null, 0])[0];
mostFrequent(['a', 'b', 'a', 'c', 'a', 'a', 'b']); // 'a'
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️