在兩個陣列之間找到對稱差 - 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];

然後 A 和 B 的對稱差為 -

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]

更新於: 2020 年 9 月 30 日

189 次瀏覽

開始您的 事業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.