Показать сообщение отдельно
  #7 (permalink)  
Старый 31.10.2022, 14:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

dc65k,
const getN = (array, n) => {

    const obj = array.reduce((acc, c) => {
        acc[c] = (acc[c] || 0) + 1;
        return acc
    }, {})

    return [...new Set(array)].sort((a, b) => {
        return obj[b] - obj[a];
    }).slice(0, n);
}

const array = [9, 9, 9, 9, 8, 8, 4, 4, 4, 1, 2]; // [9, 4]
console.log(getN(array, 2)); // [9, 4]

const array2 = [1, 1, 1, 2, 2, 3, 3, 3,]; // [1, 3]
console.log(getN(array2, 2)); // [1, 3]

const array3 = [5, 5, 5, 9, 8, 9, 1, 1, 1, 1]; // [1, 5, 9]
console.log(getN(array3, 3)); // [1, 5, 9]
Ответить с цитированием