JavaScript function that returns an object with the unique values of an array as keys and their frequencies as the values.
/**
* Calculate frequencies in Array.
*
* @param {array} arr
* @returns {*}
*
* @example frequencies(["a", "b", "a", "c", "a", "a", "b"]); // { a: 4, b: 2, c: 1 }
* @link https://www.30secondsofcode.org/js/s/frequencies/
*/
const frequencies = arr =>
arr.reduce((a, v) => {
a[v] = a[v] ? a[v] + 1 : 1;
return a;
}, {});
// ES5
var frequencies = function(arr) {
return arr.reduce(function(a, v) {
a[v] = a[v] ? a[v] + 1 : 1;
return a;
}, {});
};
//
// Example usage:
frequencies(["a", "b", "a", "c", "a", "a", "b"]); // { a: 4, b: 2, c: 1 }
//
// Also see:
// Get Most Frequent Element in an Array (https://jonlabelle.com/snippets/view/javascript/get-most-frequent-element-in-an-array)
//