3.1 Колекція Map
У ECMAScript 2015 (ES6) у JavaScript додали дві нові структури даних: Map і Set. Ці структури даних забезпечують більш гнучкі й ефективні способи зберігання та управління колекціями даних порівняно з традиційними об'єктами та масивами.
Map — це структура даних, яка дозволяє зберігати пари ключ-значення, де ключі можуть бути будь-якого типу, включаючи об'єкти та функції.
1. Створення та ініціалізація Map:
const map = new Map();
2. Додавання елементів:
Метод set використовується для додавання нових пар ключ-значення до Map.
map.set('ключ1', 'значення1');
map.set(2, 'значення2');
map.set({ name: 'ключОб'єкта' }, 'значення3');
3. Отримання елементів:
Метод get використовується для отримання значення за ключем.
const map = new Map();
map.set('ключ1', 'значення1');
map.set(2, 'значення2');
map.set({ name: 'ключОб'єкта' }, 'значення3');
console.log(map.get('ключ1')); // 'значення1'
console.log(map.get(2)); // 'значення2'
4. Перевірка наявності ключа:
Метод has перевіряє, чи існує ключ у Map.
const map = new Map();
map.set('ключ1', 'значення1');
map.set(2, 'значення2');
map.set({ name: 'ключОб'єкта' }, 'значення3');
console.log(map.has('ключ1')); // true
console.log(map.has('ключ3')); // false
5. Видалення елементів:
Метод delete видаляє елемент за ключем.
const map = new Map();
map.set('ключ1', 'значення1');
map.set(2, 'значення2');
map.set({ name: 'ключОб'єкта' }, 'значення3');
map.delete('ключ1');
console.log(map.has('ключ1')); // false
6. Очищення Map:
Метод clear видаляє всі елементи з Map.
const map = new Map();
map.set('ключ1', 'значення1');
map.set(2, 'значення2');
map.set({ name: 'ключОб'єкта' }, 'значення3');
map.clear();
console.log(map.size); // 0
7. Ітерація по Map:
Ви можете використовувати цикл for...of для ітерації по Map.
Приклад:
const map = new Map();
map.set('ключ1', 'значення1');
map.set(2, 'значення2');
for (const [key, value] of map) {
console.log(`${key}: ${value}`);
}
// 'ключ1: значення1'
// '2: значення2'
3.2 Колекція Set
Set — це структура даних, яка дозволяє зберігати унікальні значення будь-якого типу, включаючи об'єкти та примітиви.
1. Створення та ініціалізація Set:
const set = new Set();
2. Додавання елементів:
Метод add використовується для додавання нових значень до Set.
set.add(1);
set.add('значення2');
set.add({ name: 'значенняОб'єкта' });
3. Перевірка наявності значення:
Метод has перевіряє, чи існує значення в Set.
const set = new Set();
set.add(1);
set.add('значення2');
set.add({ name: 'значенняОб'єкта' });
console.log(set.has(1)); // true
console.log(set.has('значення3')); // false
4. Видалення елементів:
Метод delete видаляє значення з Set.
const set = new Set();
set.add(1);
set.add('значення2');
set.add({ name: 'значенняОб'єкта' });
set.delete(1);
console.log(set.has(1)); // false
5. Очищення Set:
Метод clear видаляє всі елементи з Set.
const set = new Set();
set.add(1);
set.add('значення2');
set.add({ name: 'значенняОб'єкта' });
set.clear();
console.log(set.size); // 0
6. Ітерація по Set:
Ви можете використовувати цикл for...of для ітерації по Set.
const set = new Set();
set.add(1);
set.add('значення2');
for (const value of set) {
console.log(value);
}
// 1
// 'значення2'
3.3 Порівняння Map та Set
Переваги Map:
- Довільні ключі: у
Mapключі можуть бути будь-якого типу, включаючи об'єкти й функції, на відміну від об'єктів, де ключами можуть бути лише строки або символи. - Упорядковані елементи: елементи у
Mapзберігають порядок додавання, що спрощує ітерацію по них у порядку додавання. - Розмір колекції: метод
sizeдозволяє швидко отримати кількість елементів уMap.
Переваги Set:
- Унікальні значення:
Setавтоматично гарантує, що всі його елементи є унікальними. - Упорядковані елементи: елементи у
Setзберігають порядок додавання, що спрощує ітерацію по них у порядку додавання. - Оптимізовані операції:
Setнадає оптимізовані методи для додавання, видалення й перевірки наявності елементів.
Практичні приклади
Приклад використання Map для зберігання інформації про користувачів:
const users = new Map();
users.set(1, { name: 'Аліса', age: 25 });
users.set(2, { name: 'Боб', age: 30 });
for (const [id, user] of users) {
console.log(`User ID: ${id}, Name: ${user.name}, Age: ${user.age}`);
}
// User ID: 1, Name: Аліса, Age: 25
// User ID: 2, Name: Боб, Age: 30
Приклад використання Set для фільтрації унікальних значень:
const numbers = [1, 2, 3, 1, 2, 4, 5, 3];
const uniqueNumbers = new Set(numbers);
for (const number of uniqueNumbers) {
console.log(number);
}
// 1
// 2
// 3
// 4
// 5
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ