taquaki-satwo
11/27/2017 - 3:03 PM

Mapオブジェクト

JS-Mapオブジェクト

// # Mapとオブジェクトの違い
// 
// * オブジェクトのキー(プロパティ名)は文字列のみ、Mapは任意の型をキーにできる
// * Mapはサイズを取得できる
// * Mapは空の連想配列を生成できる(オブジェクトはcreateメソッドを使用する必要がある)

// # Mapの特徴
// 
// * キーは `===` 演算子で比較される
// * Mapでは例外として `NaN === Nan` として見なされる
// * 参照型の比較は参照での比較になる

const m1 = new Map()

m1.set(1, 'a')
m1.set(2, 'b')
m1.set(3, 'c')
m1.set(4, 'd')

console.log(m1.size)

console.log(m1.get(1))

console.log(m1.has(4))
m1.delete(4)
console.log(m1.has(4))

for (let key of m1.keys()) {
  console.log(key)
}

for (let val of m1.values()) {
  console.log(val)
}

for (let [key, val] of m1) {
  console.log(key, val)
}

for (let [key, val] of m1.entries()) {
  console.log(`${key} = ${val}`)
}

m1.clear()
console.log(m1.size)

const array = [[5, 'e'], [6, 'f'], [7, 'g']]
const m2 = new Map(array)

for (let [key, val] of m2) {
  console.log(`${key} = ${val}`)
}

JS-Mapオブジェクト

A Pen by Takaaki Sato on CodePen.

License.