Как найти объединение двух массивов на основе функции
Чтобы найти объединение двух массивов на основе функции с использованием Node.js, следуйте этим шагам:
- Откройте Терминал/SSH и введите
node.
- Используйте следующий код, чтобы создать
Set со всеми значениями a и значениями из b, для которых функция сравнения не находит совпадений в a, с использованием Array.prototype.findIndex():
const unionWith = (a, b, comp) =>
Array.from(
new Set([...a, ...b.filter((x) => a.findIndex((y) => comp(x, y)) === -1)])
);
- Вызовите функцию
unionWith с тремя аргументами: первым массивом, вторым массивом и функцией сравнения.
- Функция возвращает каждый элемент, который присутствует хотя бы один раз в любом из двух массивов, с использованием предоставленной функции сравнения.
- Вот пример вызова функции
unionWith:
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]
Возвращается [1, 1.2, 1.5, 3, 0, 3.9] как объединение двух массивов.