30秒学会 JavaScript 片段 · 2018年6月15日

30秒学会 JavaScript 片段 – frequencies

Returns an object with the unique values of an array as keys and their frequencies as the values.

Use Array.prototype.reduce() to map unique values to an object’s keys, adding to existing keys every time the same value is encountered.

代码片段

const frequencies = arr =>
  arr.reduce((a, v) => {
    a[v] = a[v] ? a[v] + 1 : 1;
    return a;
  }, {});

使用样例

frequencies(['a', 'b', 'a', 'c', 'a', 'a', 'b']); // { a: 4, b: 2, c: 1 }