JavaScript实现集合与字典
一、集合结构
1.1.简介
集合比较常见的实现方式是哈希表,这里使用JavaScript的Object类进行封装。
集合通常是由一组无序的、不能重复的元素构成。
- 数学中常指的集合中的元素是可以重复的,但是计算机中集合的元素不能重复。
集合是特殊的数组:
- 特殊之处在于里面的元素没有顺序,也不能重复。
- 没有顺序意味着不能通过下标值进行访问,不能重复意味着相同的对象在集合中只会存在一份。
实现集合类:
-
在ES6中的Set类就是一个集合类,这里我们重新封装一个Set类,了解集合的底层实现。
-
JavaScript中的Object类中的key就是一个集合,可以使用它来封装集合类Set。
集合常见的操作:
-
add(value)
:向集合添加一个新的项; -
remove(value)
:从集合中移除一个值; -
has(value)
:如果值在集合中,返回true
,否则返回false
; -
clear()
:移除集合中的所有项; -
size()
:返回集合所包含元素的数量,与数组的length
属性相似; -
values()
:返回一个包含集合中所有值的数组;
还有其他的方法,用的不多这里不做封装;
1.2.代码实现
//封装集合类
function Set() {
//属性
this.items = {}
//方法
//一.has方法
Set.prototype.has = value => {
return this.items.hasOwnProperty(value)
}
//二.add方法
Set.prototype.add = value => {
//判断集合中是否已经包含该元素
if (this.has(value)) {
return false
}
//将元素添加到集合中
this.items[value] = value//表示该属性键和值都