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

我们需要编写一个 JavaScript 函数,它接受一个整数数组作为第一个也是唯一的参数。

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

如果他们这样做,该函数应该返回 true,否则返回 false。

例如 -

如果输入数组是 -

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

那么输出应该是 -

const output = false;

因为整数 7 和 5 都出现了 2 次。

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

示例

以下是代码 -

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