Объединение массивов на основе функции
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]