陣列中元素唯一齣現次數的 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 瀏覽量

開啟你的職業生涯

完成課程,獲得認證

開始學習
廣告