Массив содержится в другом массиве

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

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

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

Введение

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced 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/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28149{{"Массив содержится в другом массиве"}} javascript/data_types -.-> lab-28149{{"Массив содержится в другом массиве"}} javascript/arith_ops -.-> lab-28149{{"Массив содержится в другом массиве"}} javascript/comp_ops -.-> lab-28149{{"Массив содержится в другом массиве"}} javascript/cond_stmts -.-> lab-28149{{"Массив содержится в другом массиве"}} javascript/loops -.-> lab-28149{{"Массив содержится в другом массиве"}} javascript/higher_funcs -.-> lab-28149{{"Массив содержится в другом массиве"}} end

Функция для проверки, содержится ли один массив в другом массиве

Для начала работы с кодом откройте Терминал/SSH и введите node. Эта функция проверяет, присутствуют ли все элементы первого массива во втором массиве, независимо от их порядка.

Следуйте шагам ниже:

  1. Используйте цикл for...of для перебора Set, созданного из первого массива.
  2. Примените Array.prototype.some(), чтобы проверить, присутствуют ли все уникальные значения во втором массиве.
  3. Используйте Array.prototype.filter(), чтобы сравнить количество вхождений каждого уникального значения в обоих массивах.
  4. Если количество вхождений любого элемента в первом массиве больше, чем во втором, верните false. Если нет, верните true.

Посмотрите на код ниже, чтобы понять, как это работает:

const isContainedIn = (a, b) => {
  for (const v of new Set(a)) {
    if (
      !b.some((e) => e === v) ||
      a.filter((e) => e === v).length > b.filter((e) => e === v).length
    )
      return false;
  }
  return true;
};

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

isContainedIn([1, 4], [2, 4, 1]); // true

Резюме

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