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

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы научимся реализовывать объединение массивов на основе функции на JavaScript. Мы будем использовать предоставленную функцию сравнения, чтобы найти и вернуть все элементы, которые присутствуют хотя бы один раз в любом из двух массивов. В конце практического занятия у вас будет лучше понимание того, как использовать метод Array.prototype.findIndex() и объект Set для сравнения и объединения массивов.

Как найти объединение двух массивов на основе функции

Чтобы найти объединение двух массивов на основе функции с использованием Node.js, следуйте этим шагам:

  1. Откройте Терминал/SSH и введите node.
  2. Используйте следующий код, чтобы создать 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)])
  );
  1. Вызовите функцию unionWith с тремя аргументами: первым массивом, вторым массивом и функцией сравнения.
  2. Функция возвращает каждый элемент, который присутствует хотя бы один раз в любом из двух массивов, с использованием предоставленной функции сравнения.
  3. Вот пример вызова функции 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] как объединение двух массивов.

Резюме

Поздравляем! Вы завершили практическое занятие по объединению массивов на основе функции. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.