代码拉取完成,页面将自动刷新
/**
* 集合
*/
// 封装
function Set() {
this.items = {}
// add方法
Set.prototype.add = function(value) {
if (this.has(value)) return false
this.items[value] = value
return true
}
// has方法
Set.prototype.has = function(value) {
return this.items.hasOwnProperty(value)
}
// remove方法
Set.prototype.remove = function(value) {
if (!this.has(value)) return false
delete this.items[value]
}
// clear方法
Set.prototype.clear = function() {
this.items = {}
}
// size方法
Set.prototype.size = function() {
return Object.keys(this.items).length
}
// values方法
Set.prototype.values = function() {
return Object.keys(this.items)
}
// 并集
Set.prototype.union = function(newSet) {
// 1. 定义一个空集合
var unionSet = new Set()
// 2. 将当前集合加入到空集合中
var values = this.values()
for(i = 0; i < values.length; i ++) {
unionSet.add(values[i])
}
// 3. 将新集合加入到空集合中
var values = newSet.values()
for(i = 0; i < values.length; i ++) {
unionSet.add(values[i])
}
return unionSet
}
// 交集
Set.prototype.intersection = function(newSet) {
// 1. 定义一个空集合
var intersectionSet = new Set()
// 2. 取交集
var values = this.values()
for(i = 0; i < values.length; i ++) {
var item = values[i]
if (newSet.has(item)) {
intersectionSet.add(item)
}
}
return intersectionSet
}
// 差集
Set.prototype.difference = function(newSet) {
// 1. 定义一个空集合
var differenceSet = new Set()
// 2. 取差集
var values = this.values()
for(i = 0; i < values.length; i ++) {
var item = values[i]
if (!newSet.has(item)) {
differenceSet.add(item)
}
}
return differenceSet
}
// 子集
Set.prototype.sub = function(newSet) {
var values = this.values()
for(i = 0; i < values.length; i ++) {
var item = values[i]
if (!newSet.has(item)) {
return false
}
}
return true
}
}
// 测试代码
var set = new Set()
set.add("1")
set.add("2")
set.add("3")
set.add("4")
set.add("5")
set.add("6")
console.log(set.values()) // [ '1', '2', '3', '4', '5', '6' ]
set.remove("6")
console.log(set.values()) // [ '1', '2', '3', '4', '5' ]
console.log(set.size()) // 5
var new_set = new Set()
new_set.add("7")
new_set.add("8")
new_set.add("9")
console.log(new_set.values()) // [ '7', '8', '9' ]
console.log(set.union(new_set).values()) // ['1', '2', '3', '4', '5', '7', '8', '9']
console.log(set.intersection(new_set).values()) // [ '1', '2', '3' ]
console.log(set.difference(new_set).values()) // [ '1', '2', '3', '4', '5' ]
console.log(set.sub(new_set)) // false
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。