Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ลบสองชุดใน Javascript


ความแตกต่างของ 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 }