Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

รวม Set ใน JavaScript: Union ของเซตสองเซต


การรวม 2 เซตเรียกว่า Union ใส่ทุกอ็อบเจกต์จากเซตหนึ่งไปอีกเซต ตรวจสอบ duplicates ใช้เมธอดที่ implement ไว้แล้ว

Implement เป็น static function ไม่ mutate เซตเดิม แต่สร้างใหม่ ตรวจสอบ instance ของ 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 function ไม่อยู่ใน ES6 API เพิ่มเข้าคลาส Set ได้:

ตัวอย่าง

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 }