目录
一、初识集合
集合通常是由一组无序的、不能重复的元素构成。
数学中也有“集合”这个名词,但是数学中的集合范围更大一些,允许集合中元素的重复。在计算机中,集合通常表示的结构中元素是不允许重复的。
集合的特殊之处在于里面的元素没有顺序,也不能重复。没有顺序意味着不能通过下标值进行访问,不能重复意味着相同的对象在集合中只会存在一份
二、封装集合类
//封装集合的构造函数
function Set(){
//使用一个对象来保存集合的元素
this.items = {}
//集合的操作方法
}
此处的代码就是封装了一个集合的构造函数。在集合中,添加了一个items属性,用于保存之后添加到集合中的元素。因为Object的keys本身就是一个集合。
三、集合中的常见操作及其实现
1.集合中的常见操作
- add(value):向集合添加一个新的项。
- remove(value):从集合移除一个值。
- has(value):如果值在集合中,返回true,否则返回false。
- clear():移除集合中的所有项。
- size():返回集合所包含元素的数量,与数组的length属性类似。
- values():返回一个包含集合中所有值的数组。
2.has(value)方法
如果值在集合中,返回true,否则返回false
//has方法
Set.prototype.has = function(value){
return this.items.hasOwnProperty(value)
}
3.add(value)方法
向集合添加一个新的项
//add方法
Set.prototype.add = function(value){
//判断当前集合是否已经包含了该元素
if(this.has(value)){
return false
}
//将元素添加到集合