Методы для работы со множествами

Содержание

В ECMAScript 2025 у Set появилось 7 новых методов, позволяющих выполнять операции теории множеств.

Давайте бегло с ними ознакомимся.

intersection

Intersection (пересечение) — вернёт элементы, которые есть и в первом, и во втором множестве.

const first = new Set([1, 2, 3]);
const second = new Set([3, 4, 5]);

first.intersection(second);
// Set(1) { 3 }

union

Union (объединение) — вернёт элементы, которые есть или в первом, или во втором множестве (то есть все).

const first = new Set([1, 2, 3]);
const second = new Set([3, 4, 5]);

first.union(second);
// Set(5) { 1, 2, 3, 4, 5 }

difference

Difference (разность) — вернёт элементы, которые представлены в первом множестве, но не представлены во втором.

const first = new Set([1, 2, 3]);
const second = new Set([3, 4, 5]);

first.difference(second);
// Set(2) { 1, 2 }

symmetricDifference

symmetricDifference (симметрическая разность) — вернёт элементы, которые принадлежат либо первому множеству, либо второму, но не обоим сразу.

Другими словами, элементы, которые есть только в первом множестве, и элементы, которые есть только во втором.

const first = new Set([1, 2, 3]);
const second = new Set([3, 4, 5]);

first.symmetricDifference(second);
// Set(4) { 1, 2, 4, 5 }

isSubsetOf

isSubsetOf (проверка на подмножество) — вернёт true, если все элементы первого множества присутствуют во втором.

const first = new Set([1, 2, 3]);
const second = new Set([3, 4, 5]);
const third = new Set([1, 2, 3, 4, 5]);

first.isSubsetOf(second);
// false

first.isSubsetOf(third);
// true

isSupersetOf

isSupersetOf (проверка на надмножество) — вернёт true, если все элементы второго множества присутствуют в первом.

const first = new Set([1, 2, 3]);
const second = new Set([3, 4, 5]);
const third = new Set([1, 2, 3, 4, 5]);

second.isSupersetOf(first);
// false

third.isSupersetOf(first);
// true

isDisjointFrom

isDisjointFrom (проверка на непересекаемость) — вернёт true, если у множеств нет общих элементов.

const first = new Set([1, 2, 3]);
const second = new Set([3, 4, 5]);
const third = new Set([6, 7, 8]);

first.isDisjointFrom(second);
// false

first.isDisjointFrom(third);
// true

Теперь работать с множествами станет гораздо удобней: не нужно больше писать подобные хелперы самому — всё работает из коробки.