数组中元素唯一出现次数的 JavaScript


我们要求编写一个 JavaScript 函数,该函数将一个整数数组作为第一个也是唯一一个参数。

该函数应判断数组中出现的所有整数是否出现次数唯一。

如果出现,则函数应返回 true,否则返回 false。

例如 −

如果输入数组是 −

const arr = [7, 5, 5, 8, 2, 4, 7];

则输出应为 −

const output = false;

因为两个整数 7 和 5 都各出现 2 次。

我们先使用哈希映射将整数映射到它们的频率(出现次数),然后使用该映射构建一个存储唯一频率的集合。

示例

以下为代码 −

const arr = [7, 5, 5, 8, 2, 4, 7];
const uniqueAppearances = (arr = []) => {
   const map = {};
   const set = new Set();
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      map[el] = (map[el] || 0) + 1;
   };
   for(key in map){
      const value = map[key];
      if(set.has(value)){
         return false;
      };
      set.add(value);
   };
   return true;
};
console.log(uniqueAppearances(arr));

输出

以下为控制台输出 −

false

更新于: 22-Jan-2021

434 浏览量

开启你的职业生涯

完成课程,获得认证

开始学习
广告
© . All rights reserved.