Проверка, содержится ли подмножество итерируемого объекта в другом итерируемом объекте
Для практики программирования откройте Терминал/SSH и введите node
. Эта функция проверяет, является ли первый итерируемый объект подмножеством второго итерируемого объекта, исключая дублирующиеся значения.
Для этого можно сделать следующее:
- Создайте новый объект
Set
из каждого итерируемого объекта с использованием конструктора Set
.
- Используйте
Array.prototype.every()
и Set.prototype.has()
, чтобы проверить, содержится ли каждое значение в первом итерируемом объекте во втором итерируемом объекте.
Вот пример реализации:
const subSet = (a, b) => {
const setA = new Set(a);
const setB = new Set(b);
return [...setA].every((value) => setB.has(value));
};
Вы можете использовать функцию subSet
, передав в нее два множества для сравнения. Например:
subSet(new Set([1, 2]), new Set([1, 2, 3, 4])); // true
subSet(new Set([1, 5]), new Set([1, 2, 3, 4])); // false