继续完善set类
let Set = require('./set.js');
class fullSet extends Set {
// 并集
union (otherSet) {
let unionSet = new fullSet()
let values = this.values()
// 将本身元素注入新集合
for (let i = 0; i < values.length; i++) {
unionSet.add(values[i])
}
// console.log('第一次循环结束后unionSset的值:' + unionSet.values());
// 将合并元素注入
values = otherSet.values();
for (let i = 0; i < values.length; i++) {
unionSet.add(values[i])
}
// console.log('第二次循环结束后unionSset的值:' + unionSet.values());
return unionSet
}
// 交集
intersection (otherSet) {
let intersectionSet = new fullSet()
let values = this.values()
let temp
// if the otherSet has the same element, push the element to the new set
for (let i = 0; i < values.length; i++) {
(otherSet.has(values[i])) ? intersectionSet.add(values[i]): ''
}
return intersectionSet
}
// 差集
difference (otherSet) {
let differenceSet = new fullSet(),
values = this.values(),
temp
for (let i = 0; i < values.length; i++) {
otherSet.has(values[i])? '' : differenceSet.add(values[i])
}
return differenceSet
}
// 判断是否为子集
sub (otherSet) {
let values = this.values()
let judgement;
for (let i = 0; i < values.length; i++) {
judgement = otherSet.has(values[i])
if (!judgement) {
return false
}
}
return true
}
}
let temp;
let a = new fullSet()
a.add(1)
a.add(2)
a.add(3)
a.add(4)
a.add(5)
let b = new fullSet()
b.add(2)
b.add(3)
b.add(4)
b.add(5)
b.add(6)
b.add(7)
b.add(8)
console.log('TEST1: union');
temp = a.union(b)
console.log(temp.values());
console.log('TEST2: intersection');
temp = a.intersection(b)
console.log(temp.values());
console.log('TEST3: difference');
temp = a.difference(b)
console.log(temp.values());
console.log('TEST4: subset');
temp = a
temp = a.sub(a)
console.log(temp)
网友评论