//ECMAScript 6 feature
let first = new Set([1, 2]);
let second = new Set([1, 2]);
let third = new Set([1, 2, 3]);
//first method
let isEqual1 =
(first.size === second.size) &&
([...first].filter(x => !second.has(x)).length === 0);
//isEqual1 is true
//second method
let isEqual2 = equalSet(first, second);
//isEqual2 is true
let isIntersects = [...first]
.filter(x => third.has(x))
.length > 0;
//isIntersects is true
let isSubset = [...third]
.filter(x => !first.has(x))
.length === 0;
//isSubset is false
console.log(isEqual1);
console.log(isEqual2);
console.log(isIntersects);
console.log(isSubset);
function equalSet(set1, set2) {
if (set1.size !== set2.size)
return false;
for (let item of set1)
if (!set2.has(item))
return false;
return true;
}