1、集合的概念
集合是由一组无序且唯一(不重复)的项组成
2、创建集合类
使用对象而不是数组来表示集合,原理:
Javascript的对象不允许一个键指向两个不同的属性,保证了集合里的元素都是唯一的
3、模拟ES6实现相同的Set类
- add(element):向集合添加一个新元素
- delete(element):从集合移除一个元素
- has(element):如果元素在集合中,返回true,否则返回false
- clear():移除集合中的所有元素
- size():返回集合所包含的元素的数量。它与数组的length属性类似
- values():返回一个包含集合中所有值(元素)的数组
class MySet{
constructor(){
this.items = {}
}
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 items;
return Object.prototype.hasOwnProperty.call(this.items,element)
}
clear(){
this.items = {}
}
size(){
return Object.keys(this.items).length
}
values(){
return Object.values(this.items)
}
}
4、测试截图
本文参考:《学习Javascript数据结构与算法第3版》