20 lines
442 B
JavaScript
20 lines
442 B
JavaScript
|
class JSONSet {
|
||
|
items = new Set();
|
||
|
|
||
|
constructor(initial) {
|
||
|
if (Array.isArray(initial)) {
|
||
|
initial.map((x) => this.apply_set_function("add", x));
|
||
|
} else {
|
||
|
this.apply_set_function("add", initial);
|
||
|
}
|
||
|
|
||
|
["add", "has", "remove"].forEach(
|
||
|
(f_name) => (this[f_name] = (x) => this.apply_set_function(f_name, x))
|
||
|
);
|
||
|
}
|
||
|
|
||
|
apply_set_function(f_name, x) {
|
||
|
return this.items[f_name](JSON.stringify(x));
|
||
|
}
|
||
|
}
|