查找两个数组之间的对称差 - JavaScript
javascriptweb developmentfront end technologyobject oriented programming
在数学中,两个集合(例如 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]