JavaScript 陣列:查找出現次數大於 n 的所有元素


我們有一個包含一些重複條目的數字/字串文字的陣列。我們的任務是編寫一個函式,該函式接受一個正整數 n 並返回所有元素的一個子陣列,這些元素出現的次數大於或等於由唯一引數指定的數字 n。

因此,讓我們為這個函式編寫程式碼 -

我們將使用 Map() 來記錄元素頻率,然後返回超過指定計數的元素。程式碼如下 -

示例

const arr = [34, 6, 34, 8, 54, 7, 87, 23, 34, 6, 21, 6, 23, 4, 23];
const moreThan = (arr, num) => {
   const creds = arr.reduce((acc, val) => {
      let { map, res } = acc;
      const count = map.get(val);
      if(!count && typeof count !== 'number'){
         map.set(val, 1);
      }else if(num - count <= 1){
         res.push(val);
      } else {
         map.set(val, count+1);
      };
      return {map, res};
   }, {
      map: new Map(),
      res: []
   });
   return creds.res;
};
console.log(moreThan(arr, 3));

輸出

控制檯中的輸出為 -

[34, 6, 23]

更新日期: 31-Aug-2020

324 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始吧
廣告
© . All rights reserved.