@Mark321

Как найти самое часто встречаемое число в массиве?

Добрый день, подскажите пожалуйста, как можно решить задачу
Есть массив
const arr = [1,2,2,2,4]
как определить что двойка само встречающийся элемент в массиве
какой должен быть алгоритм действий
я бегу циклом по массиву и я не понимаю, как мне группировать одинаковые элементы
  • Вопрос задан
  • 1286 просмотров
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
const mostFrequentNum = Array
  .from(arr.reduce((acc, n) => acc.set(n, -~acc.get(n)), new Map))
  .reduce((max, n) => max[1] > n[1] ? max : n, [ , 0 ])[0];

или

const mostFrequentNum = Object
  .entries(arr.reduce((acc, n) => (acc[n] = (acc[n] ?? 0) + 1, acc), {}))
  .reduce((acc, n) => (acc[n[1]] = +n[0], acc), [])
  .pop();
Ответ написан
Dr_Elvis
@Dr_Elvis
В гугле забанен
первое что пришло в голову:
a = [1,2,3,5,7,8,3,2,5,7,6,3,1,5,4,2,3,4,4,5,6,2,1,3,4,1,2,3,2,3,4,1,4,2,2,3,4,1,2,3,4]
b = {}
for(x of a){
    if(b[x]){
        b[x] = b[x]+1;
    }
    else{
        b[x] = 1;
    }
}
let maxKey, maxValue = 0;
for(const [key, value] of Object.entries(b)) {
  if(value > maxValue) {
    maxValue = value;
    maxKey = key;
  }
}
console.log(`Ключ ${maxKey} имеет больше всего повторений - ${maxValue}`);
Ответ написан
DanArst
@DanArst Куратор тега JavaScript
Гриффиндор в моде при любой погоде!
const arr = [1,2,2,2,4];

function occurrence(array){
   return array.sort((a,b) => 
      array.filter(v => v===a).length - array.filter(v => v===b).length
   ).pop();
}

occurrence(arr); //Вернет 2
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы