构建数组JavaScript中所有元素的频率图

我们将得到一个数字/字符串数组,其中包含一些重复的条目,我们要做的就是返回数组中每个元素的频率。

对于这种情况,返回以元素为键且其值作为频率的对象是理想的。

我们将通过循环遍历数组,forEach()并继续增加对象中元素的数量(如果已经存在),否则我们将为对象中的该元素创建一个新属性。

最后,我们将返回对象。

此问题的完整代码将是-

const arr = [2,5,7,8,5,3,5,7,8,5,3,4,2,4,2,1,6,8,6];
const getFrequency = (array) => {
   const map = {};
   array.forEach(item => {
      if(map[item]){
         map[item]++;
      }else{
         map[item] = 1;
      }
   });
   return map;
};
console.log(getFrequency(arr));

控制台中的输出将为-

{ '1': 1, '2': 3, '3': 2, '4': 2, '5': 4, '6': 2, '7': 2, '8': 3 }