Set, WeakSet - коллекция уникальных типов любого типа

Set

class Set

Note

EcmaScript6

let set1 = Set();
let set2 = Set('Ilnurgi!!!');
size

Размер множества

set2.size;
// 8
add(elem)

Добавялет в множество элемент

set2.add(12);
clear()

Очищает множество от всех элементов.

set2.clear()
delete(elem)

Удаляет элемент из множества

set2.delete(12);
has(elem)

Имеет ли множество указанный объект

set2.has('!');
// true

WeakSet

Note

EcmaScript6

Аналгоичен Set, но имеет ряд отличий:

  • может хранить только ссылки на объекты

  • если нет других ссылок на объект, хранящийся в множестве, то объект удалится сборщиком мусора

  • при создании объекта, ему нельзя передать итерируемый объект в качестве аргумента

  • объект не является перечисляемым

    • нельзя узнать его длину
    • нельзя проитерироваться по нему
class WeakSet
let weakset = new WeakSet()
add(elem)

Добавляет элемент в множество

let a = {};
weakset.add(a);