Разница между массивами на основе функции

Beginner

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

Введение

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

Функция для нахождения симметрической разности массивов

Чтобы найти симметрическую разность между двумя массивами с использованием заданной функции в качестве компаратора, следуйте этим шагам:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковать программирование.
  2. Используйте методы Array.prototype.filter() и Array.prototype.findIndex(), чтобы найти соответствующие значения.
  3. Используйте заданный код для выполнения операции.
const symmetricDifferenceWith = (arr, val, comp) => [
  ...arr.filter((a) => val.findIndex((b) => comp(a, b)) === -1),
  ...val.filter((a) => arr.findIndex((b) => comp(a, b)) === -1)
];

Например, рассмотрите следующий ввод:

symmetricDifferenceWith(
  [1, 1.2, 1.5, 3, 0],
  [1.9, 3, 0, 3.9],
  (a, b) => Math.round(a) === Math.round(b)
); // [1, 1.2, 3.9]

Вышеприведенный код вернет [1, 1.2, 3.9] в качестве симметрической разности между двумя массивами.

Резюме

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