Skip to content

Commit

Permalink
Добавляет доку для метода Set.intersection() (#5401)
Browse files Browse the repository at this point in the history
Co-authored-by: Svetlana Korobtseva <[email protected]>
Co-authored-by: Tatiana Fokina <[email protected]>
  • Loading branch information
3 people committed Jul 19, 2024
1 parent da28aa9 commit 14ed308
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 0 deletions.
Binary file added js/set-intersection/images/set-intersection.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
56 changes: 56 additions & 0 deletions js/set-intersection/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: "`.intersection()`"
description: "Метод для сравнения двух коллекций, который возвращает коллекцию общих элементов."
baseline:
- group: set-methods
features:
- javascript.builtins.Set.intersection
authors:
- vitya-ne
related:
- js/set
- js/map
- js/array-filter
tags:
- doka
---

## Кратко

Метод `intersection()` сравнивает текущую коллекцию с другой и возвращает новую, состоящую из элементов, входящих в обе коллекции.

В математике это называется пересечением двух множеств. Пересечение множеств A и B — это множество, которое состоит из элементов, входящих как в множество А, так и во множество B. Это можно выразить формулой:

```
A ∩ B = { x | x ∈ A ∧ x ∈ B }
```

![Пересечение двух множеств](images/set-intersection.png)

## Пример

Допустим, у нас есть две коллекции чисел. Необходимо сравнить эти коллекции и получить общие, встречающиеся в обеих коллекциях, числа:

```js
const num1 = new Set([42, 4, 69, 37, 2])
const num2 = new Set([1, 2, 3, 4])

const inter = num1.intersection(num2)

console.log(inter)
// Set(2) { 2, 4 }
```

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

Метод `intersection()` принимает один обязательный аргумент — объект, содержащий коллекцию для вычисления пересечения. Если аргумент не указан, будет брошено исключение `TypeError`.

Аргументом может быть как [`Set`-объект](/js/set/), так и `Set`-подобный объект, например, [`Map`](/js/map/).

Метод `intersection()` возвращает новый `Set`-объект, содержащий пересечение исходной и указанной коллекций. Итерация при сравнении элементов проводится по коллекции меньшего размера. Порядок элементов будет соответствовать порядку элементов в коллекции меньшего размера. Если у коллекций нет общих элементов, метод вернёт пустой `Set`-объект.

## Как понять

Метод `intersection()` позволяет получить общие элементы для двух коллекций без дополнительного кода обхода и сравнения.

Поддержка метода `intersection()` в основных браузерах и в [Node.js](/tools/nodejs/) появилась в 2024 году. Попытка использовать `intersection()` в более ранних версиях, приведёт к ошибке.

0 comments on commit 14ed308

Please sign in to comment.