集合通常是一组无序的,不能重复的元素构成
- 无序-意味着不能通过下标访问
- 不能重复-意味着相同对象在集合中只能存一份
- 集合最常见的实现方式是哈希表
封装集合
方法
- add(value) 添加新元素
- remove (value) 移除
- has(value) 存在返回true,否则false
- clear() 清空集合
- size() 返回集合大小
- values() 返回包含集合所有值的数组
说明
用{}来实现集合数据存储,该封装的集合 key ===value
- 即找value和找key相同
代码
class Set {
items = {}
add = (value) => {
// 添加新元素
if (this.has(value)) return false
else {
this.items[value] = value
return true
}
}
remove = (value) => {
// 移除对应元素
if (this.has(value)) {
delete this.items[value]
return true
} else {
return false
}
}
has = (value) => {
// 集合是否有该元素
return this.items.hasOwnProperty(value)
}
clear = () => {
// 清空集合
return (this.items = {})
}
size = () => {
// 返回集合大小
return Object.keys(this.items).length
}
values = () => {
// 返回包含集合所有值的数组
return Object.keys(this.items)
}
}