Skip to content

Instantly share code, notes, and snippets.

@rxluz
Created January 30, 2019 02:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rxluz/9784d8701edea4515371be64eec1f728 to your computer and use it in GitHub Desktop.
Save rxluz/9784d8701edea4515371be64eec1f728 to your computer and use it in GitHub Desktop.
JS Data Structures: Dictionaries/maps, see more at: https://medium.com/p/5c059d7b9e82
function Map() {
let items = {}
let size = 0
class PublicMap {
has(key) {
return key in items
}
set(key, value) {
if (!this.has(key)) {
size++
}
items[key] = value
return true
}
delete(key) {
if (this.has(key)) {
size--
delete items[key]
}
}
get(key) {
return items[key]
}
clear() {
items = {}
size = 0
}
size() {
return size
}
keys() {
return Object.keys(items)
}
values() {
return Object.values(items)
}
}
return new PublicMap()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment