1.概念
集合通常是由一组无序的, 不能重复的元素构成。
2.封装集合
// 封装集合的构造函数 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 //Object.keys()返回对象的键(数组) } // 获取集合中所有的值 Set.prototype.values = function () { return Object.values(this.items) //Object.values()返回对象的值(数组) } }
// 测试 var set = new Set() set.add(1) console.log(set.values()) // 1 set.add(1) console.log(set.values()) // 1 set.add(100) set.add(200) console.log(set.values()) // 1,100,200 console.log(set.has(100)) // true set.remove(100) console.log(set.values()) // 1, 200 console.log(set.size()) // 2 set.clear() console.log(set.size()) // 0