-
Notifications
You must be signed in to change notification settings - Fork 626
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Добавляет доку для метода
Set.intersection()
(#5401)
Co-authored-by: Svetlana Korobtseva <[email protected]> Co-authored-by: Tatiana Fokina <[email protected]>
- Loading branch information
1 parent
da28aa9
commit 14ed308
Showing
2 changed files
with
56 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()` в более ранних версиях, приведёт к ошибке. |