Объединение массивов на основе функции

const union = (a, b) => Array.from(new Set([…a, …b]));
const unionWith = (a, b, comp) =>
  Array.from(
    new Set([…a, …b.filter(x => a.findIndex(y => comp(x, y)) === -1)])
  );
union([1, 2, 3], [4, 3, 2]); // [1, 2, 3, 4]
unionWith(
  [1, 1.2, 1.5, 3, 0],
  [1.9, 3, 0, 3.9],
  (a, b) => Math.round(a) === Math.round(b)
);
// [1, 1.2, 1.5, 3, 0, 3.9]
Массивы и объекты JavaScript JavaScript