キーにプリミティブな値を使いたい場合は Object ではなく Map を使う
キーにプリミティブな値を使いたい場合は Object ではなく Map を使う
LeetCode での学び。今日の問題はこちら。
https://leetcode.com/problems/top-k-frequent-elements/submissions/1245392458
Object の場合
Object のキーは文字列またはシンボルでなければならない。number を渡しても文字列になってしまう。
const nums = [1, 2, 3]
const obj = {}
nums.forEach((n) => {
obj[n] = n
})
console.log(Object.keys(obj)) // => ["1", "2", "3"]
Map の場合
Map はあらゆる値をキーにすることができる。
const nums = [1, 2, 3]
const map = new Map()
nums.forEach((n) => {
map.set(n, n)
})
console.log(Array.from(map.keys())) // => [1, 2, 3]