let MySet = function () {
let items = {}
// 检查元素是否存在
this.has = function (ele) {
return items.hasOwnProperty(ele)
}
// 添加
this.add = function (value) {
if (!items.has(value)) {
items[value] = value
return value
}
return false
}
this.remove = function (value) {
if (items.has(value)) {
delete items[value]
return items[value]
}
return false
}
this.getItems = function () {
return items
}
this.clear = function () {
items = {}
}
this.size = function () {
return Object.keys(items).length
}
this.value = function () {
let values = []
for (let i in items) {
if (items.hasOwnProperty(i)) {
values.push(i)
}
}
return values
}
// 交集
this.intersection = function (otherSet) {
let resultSet = new MySet()
let arr = this.value()
for (let i = 0
if (otherSet.has(arr[i])) {
resultSet.add(arr[i])
}
}
return resultSet
}
// 并集
this.union = function (otherSet) {
let result = new MySet()
let arr = this.value()
for (let i = 0
result.add(arr[i])
}
arr = otherSet.value()
for (let i = 0
result.add(arr[i])
}
}
// 差集
this.difference = function (otherSet) {
let resultSet = new MySet()
let arr = this.value()
for (let i = 0
if (!otherSet.has(arr[i])) {
resultSet.add(arr[i])
}
}
return resultSet
}
}