Skip to content

Instantly share code, notes, and snippets.

@rxluz
Last active January 29, 2019 04:47
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/fde6238c942eba25192643ce8ec86716 to your computer and use it in GitHub Desktop.
Save rxluz/fde6238c942eba25192643ce8ec86716 to your computer and use it in GitHub Desktop.
JS Data Structures: Sets, see more at: https://medium.com/p/5c0c7e52203
function Set() {
let items = {}
let size = 0
class PublicSet {
has(item) {
return item in items
}
add(item) {
if (this.has(item)) {
return false
}
items[item] = item
size++
return true
}
delete(item) {
if (!this.has(item)) {
return false
}
delete items[item]
size--
return true
}
clear() {
items = {}
size = 0
return true
}
size() {
return size
}
values() {
let itemsValue = []
for (let value in items) {
itemsValue.push(items[value])
}
return itemsValue
}
}
return new PublicSet()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment