nums는 숫자로 이루어진 배열이다. 가장 자주 등장한 숫자를 k 개수만큼 return하라.
nums = [1,1,1,2,2,3],
k = 2
return [1,2]
nums = [1]
k = 1
return [1]
function topK(nums, k) {
let obj = {};
for (let i=0; i < nums.length; i++) {
(nums[i] in obj) ? obj[nums[i]] ++ : obj[nums[i]] = 1
}
let arr = Object.keys(obj).sort(function(a, b) {
return obj[b] - obj[a];
})
return arr.slice(0, k).map(el => Number(el));
}
💬 Number는 하나씩만 적용되기 때문에 map을 이용해 배열을 순환하여 배열 전체를 바꿔주었다.
💡 sort
함수로 배열을 내림차순 정렬하는 법과 배열 요소의 개수를 비교할 때에는 객체를 쓰면 좋다는 점을 알게 되었고 '속성' in 객체
는 해당 속성이 그 객체 안에 있는가를 물어볼 때 사용한다.