集合的运算分析及模拟实现
概念:
-
并集: 两者包含的所有元素
// 模拟实现 const union = (setA, setB) => { const unionAB = new Set() setA.forEach(v => unionAB.add(v)) setB.forEach(v => unionAB.add(v)) return unionAB }
-
交集: 两者都包含的元素
// 模拟实现 const intersection = (setA, setB) => { const intersectionSet = new Set() setA.forEach(v => { if(setB.has(v)){ intersectionSet.add(v) } }) return intersectionSet }
-
差集: 包含在第一个集合内且不存在于第二个集合的元素
// 模拟实现 const differenceSet = (setA, setB) => { const differenceSet = new Set() setA.forEach(v => { if(!setB.has(v)){ differenceSet.add(v) } }) return differenceSet }
-
子集: 给定集合的所有元素被包含在另一个集合内
// 模拟实现判断a是否是b的子集 const subSet = (setA, setB) => { let isSubset if(setA.size() > setB.size()){ return false } setA.every(v => { if(!setB.has(v)){ isSubset = false return false } return true }) return isSubset }