Returns the most frequent element in an array.
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'
JavaScript, Array
Creates an array of elements, ungrouping the elements in an array produced by zip and applying the provided function.
JavaScript, Array
Creates an array of arrays, ungrouping the elements in an array produced by zip.
JavaScript, Array
Generates all permutations of an array's elements (contains duplicates).