PassFront
  1. PassFront
  2. База знаний
  3. Массивы и структуры данных

Относится ли Map к коллекциям?

Массивы и структуры данных

Да, `Map` относится к коллекциям — это встроенная в JavaScript структура-коллекция пар «ключ–значение», наряду с `Set`, `WeakMap` и `WeakSet`.

Коллекции в JavaScript

ES6 ввёл настоящие коллекции:

  • Map — пары «ключ–значение» с ключами любого типа.
  • Set — уникальные значения.
  • WeakMap — Map со слабыми ссылками на ключи-объекты.
  • WeakSet — Set со слабыми ссылками.

Почему Map — коллекция

Map — итерируемая структура для хранения набора элементов с методами управления:

const map = new Map();
map.set('a', 1);
map.get('a');    // 1
map.has('a');    // true
map.size;        // 1
map.delete('a');

for (const [key, value] of map) {
  // итерация — признак коллекции
}

Отличия от объекта

Хотя объект тоже хранит пары, Map — специализированная коллекция: ключи любого типа, гарантированный порядок, свойство size, прямая итерация, отсутствие прототипных ключей.

WeakMap как коллекция

WeakMap тоже коллекция, но с ключами-объектами и слабыми ссылками (не мешает сборке мусора), не итерируется и не имеет size.

Коротко для собеседования

Да, Map — встроенная коллекция «ключ–значение» (ES6), наряду с Set, WeakMap, WeakSet. Итерируема, имеет size, ключи любого типа и сохраняет порядок — этим отличается от обычного объекта.

Другие вопросы раздела