集合
集合通常是由一组无序的, 不能重复的元素构成。
- 可以看成一种特殊的数组。
- 特殊之处在于里面的元素没有顺序, 也不能重复
- 没有顺序意味着不能通过下标值进行访问, 不能重复意味着相同的对象在集合中只会存在一份.
ES6 中的 Set 其实就已经实现了集合
// 封装集合的构造函数
function Set() {
// 使用一个对象来保存集合的元素
this.items = {}
// 集合的操作方法
// 判断集合中是否有某个元素
Set.prototype.has = function (value) {
return this.items.hasOwnProperty(value)
}
// 向集合中添加元素
Set.prototype.add = function (value) {
// 1.判断集合中是否已经包含了该元素
if (this.has(value)) return false
// 2.将元素添加到集合中
this.items[value] = value
return true
}
// 从集合中删除某个元素
Set.prototype.remove = function (value) {
// 1.判断集合中是否包含该元素
if (!this.has(value)) return false
// 2.包含该元素, 那么将元素删除
delete this.items[value]
return true
}
// 清空集合中所有的元素
Set.prototype.clear = function () {
this.items = {}
}
// 获取集合的大小
Set.prototype.size = function () {
return Object.keys(this.items).length
/*
考虑兼容性问题, 使用下面的代码
var count = 0
for (var value in this.items) {
if (this.items.hasOwnProperty(value)) {
count++
}
}
return count
*/
}
// 获取集合中所有的值
Set.prototype.values = function () {
return Object.keys(this.items)
/*
考虑兼容性问题, 使用下面的代码
var keys = []
for (var value in this.items) {
keys.push(value)
}
return keys
*/
}
}
网友评论