找出陣列中重複次數最少的項 JavaScript


我們要求編寫一個 JavaScript 函式,該函式採用一個可能包含重複值的字面量陣列。

該函式應返回一個數組,其中包括重複次數最少的元素。

例如− 如果輸入陣列為 -

const arr = [1,1,2,2,3,3,3];

則輸出應為 -

const output = [1, 2];

因為 1 和 2 的重複次數最少(2)

範例

const arr = [1,1,2,2,3,3,3];
const getLeastDuplicateItems = (arr = []) => {
   const hash = Object.create(null);
   let keys, min; arr.forEach(el => {
      hash[el] = hash[el] || {
         value: el, count: 0 };
         hash[el].count++; });
         keys = Object.keys(hash);
         keys.sort(function (el, b) {
            return hash[el].count - hash[b].count; });
            min = hash[keys[0]].count;
            return keys. filter(el => {
               return hash[el].count === min;
      }).
      map(el => {
         return hash[el].value;
   });
}
console.log(getLeastDuplicateItems(arr));

輸出

且控制檯中的輸出為 -

[ 1, 2 ]

更新於: 21-11-2020

336 瀏覽量

開啟你的 職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.