Що робить Set?
Що таке Set
Set- це вбудована структура даних у JavaScript (з'явилася в ES6), яка зберігає унікальні значення будь-якого типу.
Тобто в Set не може бути елементів, що повторюються.
Приклад:
javascript
const set = new Set();
set.add(1);
set.add(2);
set.add(2); // дублікат - не додасться
set.add('hello');
console.log(set); // Set(3) {1, 2, 'hello'}
console.log(set.size); // 3Основні методи
| Метод / властивість | Що робить | Приклад |
|---|---|---|
add(value) | Додає елемент | set.add(10) |
has(value) | Перевіряє наявність | set.has(10) -> true |
delete(value) | Видаляє елемент | set.delete(10) |
clear() | Очищає Set | set.clear() |
size | Кількість елементів | set.size |
Перебір
javascript
const set = new Set(['a', 'b', 'c']);
for (const value of set) {
console.log(value);
}
// a
// b
// c
set.forEach(v => console.log(v)); // те самеПриклад: видалення дублікатів з масиву
javascript
const numbers = [1, 2, 2, 3, 3, 4];
const unique = [...new Set(numbers)];
console.log(unique); // [1, 2, 3, 4]Дуже поширений і практичний прийом -
new Set()+ spread...= "прибрати дублікати".
Приклад: перетин множин
javascript
const a = new Set([1, 2, 3]);
const b = new Set([2, 3, 4]);
const intersection = new Set([...a].filter(x => b.has(x)));
console.log(intersection); // Set(2) {2, 3}Приклад: різниця множин
javascript
const difference = new Set([...a].filter(x => !b.has(x)));
console.log(difference); // Set(1) {1}Чим Set відрізняється від масиву
| Особливість | Array | Set |
|---|---|---|
| Дублікати | Можна | Не можна |
| Порядок | Упорядкований | Упорядкований (за вставкою) |
| Перевірка наявності | arr.includes(x) (O(n)) | set.has(x) (O(1)) |
| Видалення елемента | Повільно (splice) | Швидко (delete()) |
| Індексація | Є (arr[0]) | Немає |
| Розмір | arr.length | set.size |
| Перебір | for, forEach, map | for...of, forEach |
Коли використовувати Set
Використовуй Set, якщо:
- потрібно зберігати лише унікальні значення;
- важливо швидко перевіряти наявність елементів;
- не потрібна індексація (позиції не важливі);
- потрібно легко видаляти чи очищати елементи.
Коротко
| Що | Опис |
|---|---|
| Тип | Колекція унікальних значень |
| Ключові методи | .add(), .has(), .delete(), .clear() |
| Розмір | size |
| Перетворення в масив | [...set] |
| Головна відмінність від масиву | Лише унікальні елементи і швидкі операції пошуку |
Простіше кажучи:
Масив - список, де можуть бути повторення. Set - множина, де кожен елемент унікальний.
Setідеальний для фільтрації, пошуку та роботи з унікальними даними.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.