返回 JavaScript 中数组中每个数据类型的频率图


我们需要编写一个 JavaScript 函数,该函数接收一个包含不同数据类型元素的数组,并且该函数应返回一个表示每个数据类型频率的映射图。

假设我们有以下数组 −

const arr = [23, 'df', undefined, null, 12, {
   name: 'Rajesh'
}, [2, 4, 7], 'dfd', null, Symbol('*'), 8];

示例

以下是返回表示每个数据类型频率的映射图的代码 −

const arr = [23, 'df', undefined, null, 12, {
   name: 'Rajesh'
}, [2, 4, 7], 'dfd', null, Symbol('*'), 8];
const countDataTypes = arr => {
   return arr.reduce((acc, val) => {
      const dataType = typeof val;
      if(acc.has(dataType)){
         acc.set(dataType, acc.get(dataType)+1);
      }else{
         acc.set(dataType, 1);
      };
      return acc;
   }, new Map());
};
console.log(countDataTypes(arr));

输出

控制台中的输出将为 −

Map(5) {
   'number' => 3,
   'string' => 2,
   'undefined' => 1,
   'object' => 4,
      'symbol' => 1
}

更新于: 19-Oct-2020

85 人浏览

职业生涯进阶

通过完成课程获得认证

开始使用
广告