symmetricDifference - 数组差集

优质
小牛编辑
125浏览
2023-12-01

返回两个数组之间的差集。

根据每个数组创建一个 Set ,然后在每个数组上使用 Array.filter() ,只保留另一个数组不包含的值。

const symmetricDifference = (a, b) => {
  const sA = new Set(a),
    sB = new Set(b);
  return [...a.filter(x => !sB.has(x)), ...b.filter(x => !sA.has(x))];
};
symmetricDifference([1, 2, 3], [1, 2, 4]); // [3,4]