获取数组中出现次数最多的项目 JavaScript

比方说,我们需要编写一个函数,该函数接受一个字符串/数字文字数组,并返回出现次数最多的项目的索引。我们将遍历数组并准备一个 frequencyMap,然后从该映射中我们将返回出现次数最多的索引。

这样做的代码是 -

示例

const arr1 = [12, 5, 6, 76, 23, 12, 34, 5, 23, 34, 65, 34, 22, 67, 34];
const arr2 = [12, 5, 6, 76, 23, 12, 34, 5, 23, 34];
const mostAppearances = (arr) => {
   const frequencyMap = {};
   arr.forEach(el => {
      if(frequencyMap[el]){
         frequencyMap[el]++;
      }else{
         frequencyMap[el] = 1;
      };
   });
   let highest, frequency = 0;
   Object.keys(frequencyMap).forEach(key => {
      if(frequencyMap[key] > frequency){
         highest = parseInt(key, 10);
         frequency = frequencyMap[key];
      };
   });
   return arr.indexOf(highest);
};
console.log(mostAppearances(arr1));
console.log(mostAppearances(arr2));
输出结果

控制台中的输出将是 -

6
1

猜你喜欢