В 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
Теперь работать с множествами станет гораздо удобней: не нужно больше писать подобные хелперы самому — всё работает из коробки.