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

หาผลต่างสมมาตร (Symmetric Difference) ระหว่างสองอาร์เรย์ - JavaScript

ในคณิตศาสตร์ ผลต่างสมมาตรของเซต A และ B แทนด้วย A △ B

นิยามคือ เซตของสมาชิกที่อยู่ใน A หรือ B แต่ไม่อยู่ในทั้งสอง

ตัวอย่าง:

const A = [1, 2, 3, 4, 5, 6, 7, 8];
const B = [1, 3, 5, 6, 7, 8, 9];

ผลต่างสมมาตรคือ:

const diff = [2, 4, 9]

ตัวอย่าง

โค้ดต่อไปนี้เป็นตัวอย่าง:

const A = [1, 2, 3, 4, 5, 6, 7, 8];
const B = [1, 3, 5, 6, 7, 8, 9];

const symmetricDifference = (arr1, arr2) => {
  const res = [];
  for(let i = 0; i < arr1.length; i++){
    if(arr2.indexOf(arr1[i]) !== -1){
      continue;
    };
    res.push(arr1[i]);
  }
  for(let i = 0; i < arr2.length; i++){
    if(arr1.indexOf(arr2[i]) !== -1){
      continue;
    };
    res.push(arr2[i]);
  };
  return res;
};

console.log(symmetricDifference(A, B));

ผลลัพธ์

จะแสดงผลในคอนโซลดังนี้:

[2, 4, 9]