2세트를 추가하는 작업을 합집합이라고 합니다. 중복을 확인하는 동안 한 세트에서 다른 세트로 모든 개체를 추가해야 합니다. 이 방법을 구현하기 위해 이미 구현한 2가지 방법을 사용할 수 있습니다.
기존 집합을 변경하지 않고 새 집합을 만들고 반환하기를 원하므로 이 함수를 정적 함수로 구현합니다. 먼저 전달된 객체가 실제로 MySet 클래스의 인스턴스인지 확인해야 합니다.
예시
static union(s1, s2) { if (!s1 instanceof MySet || !s2 instanceof MySet) { console.log("The given objects are not of type MySet"); return null; } let newSet = new MySet(); s1.forEach(elem => newSet.add(elem)); s2.forEach(elem => newSet.add(elem)); newSet; }
다음을 사용하여 테스트할 수 있습니다.
예시
const testSet1 = new MySet(); testSet1.add(1); testSet1.add(2); const testSet2 = new MySet(); testSet2.add(2); testSet2.add(5); let testSet3 = MySet.union(testSet1, testSet2); testSet3.display();
출력
이것은 출력을 줄 것입니다 -
{ '1': '1', '2': '2', '5': '5' }
Union 함수는 ES6 API에도 없습니다. 다음과 같이 Set 클래스에서 이 기능을 사용할 수 있도록 할 수 있습니다. &minusl
예시
Set.union = function(s1, s2) { if (!s1 instanceof Set || !s2 instanceof Set) { console.log("The given objects are not of type Set"); return null; } let newSet = new Set(); s1.forEach(elem => newSet.add(elem)); s2.forEach(elem => newSet.add(elem)); return newSet; }
−
를 사용하여 이것을 테스트할 수 있습니다.예시
let setA = new Set([1, 2, 3, 4]); let setB = new Set([2, 3]); console.log(Set.union(setA, setB));
출력
이것은 출력을 줄 것입니다 -
Set { 1, 2, 3, 4 }