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

Beginner

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

Введение

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

Как фильтровать значения из массива на основе функции

Для фильтрации всех значений из массива на основе заданной функции сравнения выполните следующие шаги:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  2. Используйте Array.prototype.filter() и Array.prototype.findIndex(), чтобы найти соответствующие значения.
  3. Пропустите последний аргумент comp, чтобы использовать стандартный строгий оператор равенства.
  4. Используйте следующий код:
const differenceWith = (arr, val, comp = (a, b) => a === b) =>
  arr.filter((a) => val.findIndex((b) => comp(a, b)) === -1);
  1. Протестируйте свою функцию при помощи следующих примеров:
differenceWith(
  [1, 1.2, 1.5, 3, 0],
  [1.9, 3, 0],
  (a, b) => Math.round(a) === Math.round(b)
); // Ожидаемый результат: [1, 1.2]

differenceWith([1, 1.2, 1.3], [1, 1.3, 1.5]); // Ожидаемый результат: [1.2]

Резюме

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