一、集合
1.1 集合概念
集合比较常见的实现方式是哈希表(后续会学习),
- 集合通常是由一组无序的,不能重复的元素构成。
和数学中的集合名词比较相似,但是数学中的集合范围更大一些也允许集合中的元素重复。 - 在计算机中,集合通常表示的结构中元素是不允许重复的。
集合相当于特殊的数组,特殊之处在于里面的元素没有顺序,也不能重复,没有顺序意味着不能通过下标值进行访问,不能重复意味着相同的对象在集合中只会存在一份。
1.2 集合操作方法
划线部分的hasOwnProperty是js中的方法,判断
最后一种方法可以将Obj里面的keys个数全部返回出来
1.3 集合间操作
1.3.1 并集实现
代码解析
- 首先需要创建一个新的集合,代表两个集合的并集。
- 遍历集合1中所有的值并且添加到新集合中
- 遍历集合2中所有的值,并且添加到新集合中
- 将最终的新集合返回
this就是在这个方法里面的当前对象,然后再新创建一个对象otherSet,通过values方法得到集合里面所有元素,这个包含所有元素的value其实是一个数组
1.3.2 交集实现
- 创建一个新的集合.
- 遍历集合1中的所有元素,判断是否该元素在集合2中.
- 同时在集合2中,将该元素加入到新集合中.
- 将最终的新集合返回.
1.3.3 差集实现
- 创建一个新的集合.
- 遍历集合1中所有的元素,判断是否在集合2中.
- 不存在于集合2中,将该元素添加到新集合中,
- 将新集合返回
下图就是集合A中有但是集合B没有的测试代码
1.3.4 子集实现
- 判断集合1是否大于集合2,如果大于,那么肯定不是集合2的子集.
- 不大于的情况下:
判断集合1中的元素是否都在集合2中存在
➢存在,那么是集合2的子集.
➢有一个不存在,那么不是集合2的子集.