Set的JavaScript代码实现
class mySet{
constructor(){
this.items = {}
}
has2(item){
return item in this.items;
}
has(item){
return Object.prototype.hasOwnProperty.call(this.items,item);
}
add(item){
if(this.has(item)) return false;
this.items[item] = item;
return true;
}
delete(item){
if(!this.has(item)) return false;
delete this.items[item];
return true;
}
clear(){
this.items = {};
}
size(){
return Object.keys(this.items).length;
}
values(){
return Object.values(this.items);
}
}
let set = new mySet();
set.add(1);
set.add(2);
set.add(3);
console.log(set.values());
console.log(set.has(2));
console.log(set.size());
set.delete(2);
console.log(set.values());
set.clear();
console.log(set.values());