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

ลบ Set ใน JavaScript: Difference ของเซตสองเซต


Difference ของ 2 เซตหมายถึงเซตที่ถูกลบ ควรมีสมาชิกทั้งหมดถูกลบออกจากเซตที่ถูกลบจาก วนลูปเซตที่สองลบสมาชิกที่อยู่ในมันออกจากเซตแรก

ตัวอย่าง

static difference(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.delete(elem)); 
  return newSet; 
}

ทดสอบ:

ตัวอย่าง

const testSet1 = new MySet(); 
testSet1.add(1); 
testSet1.add(2); 
const testSet2 = new MySet(); 
testSet2.add(2); 
testSet2.add(5); 
let testSet3 = MySet.differnce(testSet1, testSet2); 
testSet3.display();

ผลลัพธ์

จะได้ผลลัพธ์:

{ '1': 1 }

difference function ไม่อยู่ใน ES6 API เพิ่มเข้าคลาส Set ได้:

ตัวอย่าง

Set.difference = 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.delete(elem)); 
  return newSet; 
}

ทดสอบ:

ตัวอย่าง

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

ผลลัพธ์

จะได้ผลลัพธ์:

Set { 1, 4 }