Skip to main content
Практика завдань

Set, Map, WeakSet та WeakMap у JavaScript

JavaScript надає вбудовані структури даних, які роблять роботу з колекціями більш зручною та ефективною. Розглянемо Set, Map, WeakSet та WeakMap.

Set

Set — це колекція унікальних значень, де кожне значення може з'являтися лише один раз.

Особливості Set

  • Зберігає лише унікальні значення.
  • Значення можуть бути будь-якого типу.

Основні методи Set

  • add(value) — додає значення.
  • delete(value) — видаляє значення.
  • has(value) — перевіряє наявність значення.
  • clear() — очищає колекцію.
  • size — повертає кількість елементів.

Приклад використання Set

javascript
const set = new Set(); set.add(1); set.add(2); set.add(2); // Ігнорується, оскільки 2 вже в колекції console.log(set.has(1)); // true console.log(set.size); // 2 set.delete(1); console.log(set); // Set { 2 }

Map

Map — це колекція пар ключ-значення, де ключі можуть бути будь-якого типу.

Особливості Map

  • Упорядкована структура.
  • Дозволяє використовувати об'єкти як ключі.

Основні методи Map

  • set(key, value) — додає пару ключ-значення.
  • get(key) — повертає значення за ключем.
  • delete(key) — видаляє пару за ключем.
  • has(key) — перевіряє наявність ключа.
  • clear() — очищає колекцію.
  • size — повертає кількість елементів.

Приклад використання Map

javascript
const map = new Map(); map.set('name', 'John'); map.set({ id: 1 }, 'Object'); console.log(map.get('name')); // John console.log(map.size); // 2 map.delete('name'); console.log(map); // Map { { id: 1 } => 'Object' }

WeakSet

WeakSet — це колекція, яка зберігає лише об'єкти. Ці об'єкти є слабко посилальними, що дозволяє збирачу сміття видаляти їх, якщо немає інших посилань.

Особливості WeakSet

  • Зберігає лише об'єкти.
  • Не можна отримати розмір або ітерувати елементи.
  • Використовується для тимчасового зберігання об'єктів.

Основні методи WeakSet

  • add(value) — додає об'єкт.
  • delete(value) — видаляє об'єкт.
  • has(value) — перевіряє наявність об'єкта.

Приклад використання WeakSet

javascript
const weakSet = new WeakSet(); let obj = { name: 'John' }; weakSet.add(obj); console.log(weakSet.has(obj)); // true obj = null; // Об'єкт буде видалено з WeakSet збирачем сміття

WeakMap

WeakMap — це колекція пар ключ-значення, де ключі можуть бути лише об'єктами, а значення можуть бути будь-якими. Ключі є слабко посилальними, що дозволяє збирачу сміття видаляти об'єкти, якщо немає більше посилань.

Особливості WeakMap

  • Ключі можуть бути лише об'єктами.
  • Значення можуть бути будь-якими.
  • Елементи є слабко посилальними, що означає автоматичне видалення з колекції, якщо ключ недоступний.
  • Не можна ітерувати елементи колекції або отримати її розмір.

Основні методи WeakMap

  • set(key, value) — додає пару ключ-значення.
  • get(key) — повертає значення за ключем.
  • delete(key) — видаляє пару ключ-значення.
  • has(key) — перевіряє наявність ключа.

Приклад використання WeakMap

javascript
const weakMap = new WeakMap(); // Створити об'єкт let user = { name: "John" }; // Додати об'єкт як ключ і значення weakMap.set(user, "User data"); console.log(weakMap.get(user)); // "User data" // Видалити посилання на об'єкт user = null; // Об'єкт буде видалено з WeakMap збирачем сміття

Обмеження WeakMap:

WeakMap підходить для зберігання даних, пов'язаних з об'єктами, які можуть бути видалені збирачем сміття. Наприклад, для прикріплення метаданих до DOM-об'єктів.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань