Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

자바스크립트에서 두 세트 추가하기


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 }