Set, WeakSet

Set

class Set()

Note

EcmaScript6

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

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

set2.size;
// 8
Set.add(elem)

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

set2.add(12);
Set.clear()

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

set2.clear()
Set.delete(elem)

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

set2.delete(12);
Set.forEach(func)

Перебор элементов в множестве

set2.forEach((item) => {
    console.log(item);
})
Set.has(elem)

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

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

WeakSet

Note

EcmaScript6

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

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

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

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

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

    • нельзя узнать его длину

    • нельзя проитерироваться по нему

class WeakSet()
let weakset = new WeakSet()
WeakSet.add(elem)

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

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