Skip to main content

Що робить 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()Очищає Setset.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 відрізняється від масиву

ОсобливістьArraySet
ДублікатиМожнаНе можна
ПорядокУпорядкованийУпорядкований (за вставкою)
Перевірка наявностіarr.includes(x) (O(n))set.has(x) (O(1))
Видалення елементаПовільно (splice)Швидко (delete())
ІндексаціяЄ (arr[0])Немає
Розмірarr.lengthset.size
Перебірfor, forEach, mapfor...of, forEach

Коли використовувати Set

Використовуй Set, якщо:

  • потрібно зберігати лише унікальні значення;
  • важливо швидко перевіряти наявність елементів;
  • не потрібна індексація (позиції не важливі);
  • потрібно легко видаляти чи очищати елементи.

Коротко

ЩоОпис
ТипКолекція унікальних значень
Ключові методи.add(), .has(), .delete(), .clear()
Розмірsize
Перетворення в масив[...set]
Головна відмінність від масивуЛише унікальні елементи і швидкі операції пошуку

Простіше кажучи:

Масив - список, де можуть бути повторення. Set - множина, де кожен елемент унікальний. Set ідеальний для фільтрації, пошуку та роботи з унікальними даними.

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

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

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