Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавляет доку про метод множеств isDisjointFrom() #5672

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
50 changes: 50 additions & 0 deletions js/set-is-disjoint-form/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: "`isDisjointFrom()`"
description: "Метод сравнения коллекций, который позволяет проверить не имеют ли два множества общих элементов"
baseline:
- group: set-methods
features:
- javascript.builtins.Set.isDisjointFrom
authors:
- punkmachine
related:
- js/set
- js/set-has
- js/set-foreach
tags:
- doka
---

## Кратко

Метод `isDisjointFrom()` позволяет проверить, имеют ли два множества хотя бы один общий элемент. Возвращает `true`, если множества не пересекаются, и `false` — если есть хотя бы один общий элемент.

## Пример

У нас есть два набора навыков разных разработчиков, представленных в виде массивов строк. Им стало интересно, есть ли у них хотя бы один общий навык в своих направлениях, для чего они могут использовать метод `isDisjointFrom()`:
punkmachine marked this conversation as resolved.
Show resolved Hide resolved

```js
const frontendSkills = new Set(['JavaScript', 'HTML', 'CSS', 'Vue.js']);
const backendSkills = new Set(['Python', 'Node.js', 'PostgreSQL', 'Redis']);

console.log(frontendSkills.isDisjointFrom(backendSkills)); // true, т.к. ни один из навыков не пересекается
```

Как выяснилось, у них нет пересечений в навыках, но выяснилось, что frontend-разработчик забыл указать, что он также умеет писать код на `Node.js`.

```js
// Добавим навык в существующее множество.
frontendSkills.add('Node.js');

console.log(frontendSkills.isDisjointFrom(backendSkills)); // false, т.к. Node.js уже есть в обоих множествах
```

## Как пишется

Метод `isDisjointFrom()` принимает один обязательный аргумент — объект, который содержит множество для сравнения. Если аргумент не указан, будет брошено исключение `TypeError: Set.prototype.isDisjointFrom argument must be an object`.

Аргументом для метода `isDisjointFrom()` может быть множество, созданное через [конструктор `new Set()`](/js/set-constructor/), а также [`Map`](/js/map/).

## Как понять

Метод `isDisjointFrom()` помогает проверить два множества на наличие хотя бы одного совпадающего элемента без прохода по ним с помощью [`forEach()`](/js/set-foreach/).
Loading