Map и Set
Коллекции с уникальными ключами (Map) и уникальными значениями (Set).
Зачем нужно
Map — словарь с любыми ключами (не только строки). Set — коллекция уникальных значений. Оба сохраняют порядок вставки и быстрее объектов для частых добавлений/удалений.
Где используется
- Кэширование с объектными ключами (Map)
- Удаление дубликатов (Set)
- Подсчёт уникальных элементов
Code
// Map
const map = new Map();
map.set('key', 'value');
map.set(42, 'number key');
map.set(obj, 'object key'); // ключ — объект!
map.get('key'); // 'value'
map.has(42); // true
map.size; // 3
map.delete('key');
for (const [key, value] of map) { /* ... */ }
// Map из массива пар
const m = new Map([['a', 1], ['b', 2]]);
// Set
const set = new Set([1, 2, 3, 2, 1]);
set.size; // 3 (дубликаты удалены)
set.add(4);
set.has(3); // true
set.delete(1);
for (const val of set) { /* ... */ }
// Уникальные элементы массива
const unique = [...new Set(array)];
// WeakMap / WeakSet — ключи собираются GC
const wm = new WeakMap();
wm.set(domElement, { clicks: 0 }); // не мешает GC удалить элемент