Back

キーにプリミティブな値を使いたい場合は 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]

参考