ความแตกต่างของ 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 }
โปรดทราบว่าฟังก์ชันความแตกต่างไม่มีอยู่ใน 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 }