Введение
В этом практическом занятии мы изучим, как проверить, содержится ли один массив в другом массиве на JavaScript. Мы будем использовать различные методы массивов, такие как for...of, Set, some() и filter(), чтобы написать функцию, которая сможет определить, присутствуют ли элементы первого массива во втором массиве, независимо от их порядка. Это практическое занятие поможет вам понять, как манипулировать массивами на JavaScript и писать эффективный код для решения общих задач программирования.
Функция для проверки, содержится ли один массив в другом массиве
Для начала работы с кодом откройте Терминал/SSH и введите node. Эта функция проверяет, присутствуют ли все элементы первого массива во втором массиве, независимо от их порядка.
Следуйте шагам ниже:
- Используйте цикл
for...ofдля перебораSet, созданного из первого массива. - Примените
Array.prototype.some(), чтобы проверить, присутствуют ли все уникальные значения во втором массиве. - Используйте
Array.prototype.filter(), чтобы сравнить количество вхождений каждого уникального значения в обоих массивах. - Если количество вхождений любого элемента в первом массиве больше, чем во втором, верните
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, чтобы улучшить свои навыки.