diff --git a/js/index.md b/js/index.md index a6fa822a74..f09c6892fe 100644 --- a/js/index.md +++ b/js/index.md @@ -152,6 +152,7 @@ groups: - set-intersection - set-symmetric-difference - set-is-subset-of + - set-is-superset-of - name: "Обработка исключений" items: - try-catch diff --git a/js/set-is-subset-of/index.md b/js/set-is-subset-of/index.md index a9ea1ad3e5..ecfbb494bb 100644 --- a/js/set-is-subset-of/index.md +++ b/js/set-is-subset-of/index.md @@ -39,7 +39,7 @@ console.log(set2.isSubsetOf(set1)) ## Как пишется -Метод `isSubsetOf()` принимает один обязательный аргумент — объект, содержащий коллекцию для объединения. Если аргумент не указан, будет брошено исключение `TypeError`. +Метод `isSubsetOf()` принимает один обязательный аргумент — объект, содержащий коллекцию для сравнения. Если аргумент не указан, будет брошено исключение `TypeError`. Аргументом может быть как [`Set`-объект](/js/set/), так и `Set`-подобный объект, например, [`Map`](/js/map/). diff --git a/js/set-is-superset-of/index.md b/js/set-is-superset-of/index.md new file mode 100644 index 0000000000..533b547a9c --- /dev/null +++ b/js/set-is-superset-of/index.md @@ -0,0 +1,59 @@ +--- +title: "`.isSupersetOf()`" +description: Метод сравнения коллекций, который позволяет определить включает текущая коллекция все элементы другой коллекции или нет. +baseline: + - group: set-methods + features: + - javascript.builtins.Set.isSupersetOf +authors: + - vitya-ne +related: + - js/set + - js/set-is-subset-of + - js/array-some +tags: + - doka +--- + +## Кратко + +Метод `isSupersetOf()` сравнивает текущую коллекцию с другой и возвращает `true`, если текущая коллекция включает в себя все элементы другой коллекции, и `false` — если нет. + +## Пример + +У Софии и Надежды большие личные библиотеки. София хочет доказать, что её коллекция включает все романы Набокова, которые есть в коллекции Надежды. В этом ей поможет метод `isSupersetOf()`. + +У нас есть два массива строк. Определим, входят ли все элементы второго массива также в первый. Для решения задачи создадим [`Set-объекты`](/js/set/) из массивов и сравним их, используя метод `isSupersetOf()`: + +```js +const booksOfSonya = [ 'Дар', 'Подвиг', 'Защита Лужина', 'Отчаяние' ] +const booksOfNadya = [ 'Подвиг', 'Защита Лужина', 'Дар' ] + +const set1 = new Set(booksOfSonya) +const set2 = new Set(booksOfNadya) + +console.log(set1.isSupersetOf(set2)) +// true +console.log(set2.isSupersetOf(set1)) +// false +``` + +## Как пишется + +Метод `isSupersetOf()` принимает один обязательный аргумент — объект, который содержит коллекцию для сравнения. Если аргумент не указан, будет брошено исключение `TypeError`. + +Аргументом может быть как `Set`-объект, так и `Set`-подобный объект, например, [`Map`](/js/map/). + + + +Метод `isSupersetOf()` возвращает булевое значение как результат сравнения коллекций. + +## Как понять + +Сравнение коллекций — часто встречающаяся задача. Метод `isSupersetOf()` упрощает её решение и избавляет от необходимости писать код обхода и сравнения. + +Не путайте метод `isSupersetOf()` с методом [`isSubsetOf()`](/js/set-is-subset-of/), который решает обратную задачу и проверяет, что все элементы текущей коллекции содержатся в другой. Поддержка `isSupersetOf()` в основных браузерах и в [Node.js](/tools/nodejs/) появилась в 2024 году. Если попробуете использовать метод в более ранних версиях, получите ошибку.