Map, Set, WeekMap, WeekSet

Map – это коллекция ключ/значение, как и Object. Но основное отличие в том, что Map позволяет использовать ключи любого типа.

    Методы и свойства:
  • new Map() – создаёт коллекцию
  • map.set(key, value) – записывает по ключу key значение value
  • map.get(key) – возвращает значение по ключу или undefined, если ключ key отсутствует
  • map.has(key) – возвращает true, если ключ key присутствует в коллекции, иначе false
  • map.delete(key) – удаляет элемент (пару «ключ/значение») по ключу key
  • map.clear() – очищает коллекцию от всех элементов
  • map.size – возвращает текущее количество элементов

Set – это особый вид коллекции, где каждое значение может появляться только один раз.

    Методы:
  • new Set(iterable) – создаёт Set, и если в качестве аргумента был предоставлен итерируемый объект (обычно это массив), то копирует его значения в новый Set
  • set.add(value) – добавляет значение (если оно уже есть, то ничего не делает), возвращает тот же объект set
  • set.delete(value) – удаляет значение, возвращает true, если value было в множестве на момент вызова, иначе false
  • set.has(value) – возвращает true, если значение присутствует в множестве, иначе false
  • set.clear() – удаляет все имеющиеся значения
  • set.size – возвращает количество элементов в множестве

WeakMap – это Map-подобная коллекция, позволяющая использовать в качестве ключей только объекты, и автоматически удаляющая их вместе с соответствующими значениями, как только они становятся недостижимыми иными путями.

WeakSet – это Set-подобная коллекция, которая хранит только объекты и удаляет их, как только они становятся недостижимыми иными путями.

WeakMap и WeakSet используются как вспомогательные структуры данных в дополнение к «основному» месту хранения объекта. Если объект удаляется из основного хранилища и нигде не используется, кроме как в качестве ключа в WeakMap или в WeakSet, то он будет удалён автоматически.