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]