profileRyan KesPGP keyI build stuffEmailGithubTwitterLast.fmMastodonMatrix

JavaScript Maps

Description

For sane people ES6 comes with a half assed "solution" handy data structure called Map which prevents the diy shenanigans below.

Syntax

Basic operation

Single entries

const map = new Map()
const KEY = {}

map.set(KEY, 123)
console.log(map.get(KEY)) // 123

console.log(map.has(KEY)) // true

map.delete(KEY)
console.log(map.has(KEY)) // false

Array

const map = new Map([
  [1, "one"],
  [2, "two"],
  [3, "three"],
])

Iteration

Keys

const map = new Map([
  [false, "no"],
  [true, "yes"],
])

for (const key of map.keys()) {
  console.log(key)
}

Values

const map = new Map([
  [false, "no"],
  [true, "yes"],
])

for (const value of map.values()) {
  console.log(value)
}

Entries

const map = new Map([
  [false, "no"],
  [true, "yes"],
])

for (const entry of map.entries()) {
  console.log(entry[0], entry[1])
}

Converting to Arrays

The spread operator (…) can turn an iterable into an Array

const map = new Map().set(false, "no").set(true, "yes")
console.log([...map.keys()]) // false, true
const map = new Map().set(false, "no").set(true, "yes")
console.log([...map])

Related