Computer >> Máy Tính >  >> Lập trình >> Javascript

Thêm hai Bộ trong Javascript


Thao tác cộng 2 tập hợp được gọi là hợp nhất. Bạn cần thêm mọi đối tượng từ tập hợp này sang tập hợp khác trong khi kiểm tra các bản sao. Chúng tôi chỉ có thể sử dụng 2 phương pháp mà chúng tôi đã triển khai để thực hiện phương pháp này.

Chúng tôi sẽ triển khai hàm này dưới dạng một hàm tĩnh vì chúng tôi không muốn thay đổi các tập hợp hiện có, nhưng tạo và trả lại một tập hợp mới. Trước tiên, chúng ta cần kiểm tra xem đối tượng được chuyển tới nó có thực sự là một thể hiện của lớp MySet hay không.

Ví dụ

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

Bạn có thể kiểm tra điều này bằng cách sử dụng -

Ví dụ

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();

Đầu ra

Điều này sẽ cung cấp đầu ra -

{ '1': '1', '2': '2', '5': '5' }

Lưu ý rằng hàm union cũng không có trong API ES6. Bạn có thể làm cho chức năng này khả dụng trong lớp Set như sau &trừl

Ví dụ

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

Bạn có thể kiểm tra điều này bằng cách sử dụng -

Ví dụ

let setA = new Set([1, 2, 3, 4]);
let setB = new Set([2, 3]);
console.log(Set.union(setA, setB));

Đầu ra

Điều này sẽ cung cấp đầu ra -

Set { 1, 2, 3, 4 }