Set: уникальные значения и проверка наличия
Set хранит уникальные значения и подходит для набора выбранных идентификаторов или уже встречавшихся примитивов.
Назначение
Set хранит уникальные значения и подходит для набора выбранных идентификаторов или уже встречавшихся примитивов.
Как это работает
add добавляет значение, has проверяет наличие, delete удаляет его, size сообщает размер. Повторное добавление того же значения не увеличивает коллекцию. Объекты различаются по идентичности ссылок.
Пример
const topics=new Set(['html','css','html']);
console.assert(topics.size===2);
topics.add('js');
console.assert(topics.has('js'));
console.assert(topics.delete('css'));
console.assert(topics.size===2);
Что должно получиться
Повтор HTML не создаёт второй элемент. Добавление JS и удаление CSS сохраняют размер два, но меняют состав набора. Это операции с коллекцией в памяти, без сохранения на сервере.
Граница применения и частая ошибка
Два объекта с одинаковым id не объединятся автоматически. Если уникальность определяется полем, сначала выберите этот ключ или используйте Map с проверенным идентификатором.
Самостоятельная проверка
Добавьте два одинаковых числа и два отдельных объекта с одинаковыми полями. Сравните размер Set и сформулируйте правило уникальности для вашей предметной области.
JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.