一、封装的背景
在ES6中,有新的数据类型set(集合),但是他返回的是一个迭代器,并不是一个我们想要的数组,一般我们需要使用扩展字符外加中括号转换成数组。因此可以特地封装一下,各有各的好处吧。
二、开始封装
class newSet {
items = {};
constructor(data){
data.forEach((item) => {
this.add(item);
});
return this.values();
}
add(element) {
if (!this.has(element)) {
this.items[element] = element;
return true
}
return false
}
delete(element) {
if (this.has(element)) {
delete this.items[element];
return true
}
return false
}
has(element) {
return element in this.items;
}
clear() {
this.items = {};
}
size() {
Object.keys(this.items).length
}
values() {
return Object.values(this.items);
}
}