Map, WeakMap

Map

Note

EcmaScript6

class Map()
let map = new Map();
let map2 = new Map([[1, 2], [3, 4]]);
Map.size

Количесвто ключей в коллекции

map2.size;
// 2
Map.clear()

Очищает коллекцию

map.clear();
Map.delete(key)

Удаляет пару ключ-значение из коллекции

map.delete("2");
Map.get(key)

Возвращает значение по ключу

map.get("2");
Map.has(key)

Проверяет, есть ли ключ в коллекции

map.has("2");
// false
Map.set(key, value)

Добавляет ключ и значение

let o = {n: '1'};
map.set(o, "A");

WeakMap

Note

EcmaScript6

Аналогичен Map, но имеет отличия:

  • ключи могут быть только ссылками на объекты

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

  • коллекция не перечисляема

    • нельзя узнать размер

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

class WeakMap()
let weakmap = WeakMap();
WeakMap.delete(key)

Удаляет пару ключ-значение из коллекции

map.delete("2");
WeakMap.get(key);()

Возвращает значение по ключю

map.get("2");
WeakMap.set(key, value)

Добавляет ключ и значение

let o = {n: '1'};
map.set(o, "A");