Вам необходимо реализовать базовые операции с множествами, такие как объединение, пересечение и разность самостоятельно с помощью ES6 Set.

Как разработчики JS, мы использовали объект Set, который позволяет хранить уникальные значения любого типа, будь то примитивные значения или ссылки на объекты.

Вы можете создать JavaScript Set разными способами.

Объект Set имеет набор встроенных методов и одно свойство: size. Подробнее о Set можно узнать на MDN.

Я предполагаю, что вы знакомы с объектом Set, и я не буду углубляться в Set. Итак, давайте перейдем к нашей теме…😎

Хотя в JavaScript есть объект Set, в нем нет основных операций с множествами, таких как объединение, пересечение, разность, надмножество, и подмножество. Поэтому мы должны реализовать эти операции самостоятельно.

Ниже показано, как мы реализуем базовые операции над множествами при использовании объекта Set. Обратите внимание, что приведенные ниже примеры кода скопированы непосредственно из MDN.

Внедрив настраиваемый набор самостоятельно, мы можем использовать их везде, где нам нужно выполнять базовые операции над наборами, вместо того, чтобы разрабатывать их вручную.

Давайте создадим класс CustomSet и реализуем основные методы Set: has(), add(), delete(), values() и size() следующим образом. Единственная разница в CustomSet заключается в том, что size — это метод (size — это свойство в Set).

Вы можете проверить класс CustomSet следующим образом:

Союзная операция

объединение двух или более наборов — это набор, содержащий все элементы, входящие во все наборы. Давайте добавим новую функцию (union()) в наш класс CustomSet.

Операция пересечения

Пересечение двух или более наборов — это набор, содержащий общие элементы для всех наборов. Давайте добавим новую функцию (intersection()) в наш класс CustomSet.

Разность (вычитание) Операция

Разница может быть определена как набор элементов в одном наборе, но не в другом наборе.

A — B обозначает Все элементы множества A, но не множества B.
B — A обозначает Все элементы множества B, но не множества A.

Давайте добавим новую функцию (difference()) в наш класс CustomSet.

Операции с подмножествами и надмножествами

На изображении выше A ⊂ B обозначает, что B является подмножеством A, а A ⊃ Bобозначает, что A является надмножеством B. Давайте добавим две новые функции (subset() и superset() ) в наш класс CustomSet.

Мы закончили реализацию нашего класса настраиваемого набора. Завершенный код выглядит следующим образом.

Спасибо за чтение.😍

Надеюсь, вы узнали что-то новое, прочитав эту статью. Пожалуйста, подпишитесь на меня, чтобы читать статьи такого типа в будущем. Здоровья!

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.