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

JavaScriptJavaScriptBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28323{{"Разница между массивами на основе функции"}} javascript/data_types -.-> lab-28323{{"Разница между массивами на основе функции"}} javascript/arith_ops -.-> lab-28323{{"Разница между массивами на основе функции"}} javascript/comp_ops -.-> lab-28323{{"Разница между массивами на основе функции"}} javascript/higher_funcs -.-> lab-28323{{"Разница между массивами на основе функции"}} end

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

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

  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, чтобы улучшить свои навыки.