数组和集合 / 无重复集合

//ECMAScript 6 feature
let first = new Set([12]);
let second = new Set([12]);
let third = new Set([123]);

//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;
}