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

Beginner

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

Введение

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

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

Для начала работы с кодом откройте Терминал/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, чтобы улучшить свои навыки.