Skip to main content

Set

Использование Set в JavaScript предоставляет мощный инструмент для хранения уникальных значений любого типа, будь то примитивные значения или объекты.

Создание set

let set = new Set();

Добавление и удаление элементов

set.add("value1"); // Добавление значения
set.delete("value1"); // Удаление значения

Доступ к элементам и проверка наличия

let hasValue = set.has("value1"); // Проверка наличия значения
console.log(hasValue); // Output: true или false

Итерация по элементам

// Итерация по элементам
for (let value of set) {
console.log(value);
}

// Итерация по элементам с использованием forEach
set.forEach((value) => {
console.log(value);
});

Преобразование Set в массив и обратно

let set = new Set(["value1", "value2", "value3"]);

// Преобразование с использованием Array.from
let array = Array.from(set);
console.log(array); // Output: ["value1", "value2", "value3"]

// Преобразование с использованием оператора распространения
let array2 = [...set];
console.log(array2); // Output: ["value1", "value2", "value3"]

Преобразование массива в Set

let array = ["value1", "value2", "value3"];
let set = new Set(array);
console.log(set); // Output: Set { 'value1', 'value2', 'value3' }

Примеры использования Set

Удаление дубликатов из массива

let arrayWithDuplicates = ["value1", "value2", "value1", "value3", "value2"];
let uniqueArray = [...new Set(arrayWithDuplicates)];
console.log(uniqueArray); // Output: ["value1", "value2", "value3"]

Объединение множеств

let set1 = new Set(["value1", "value2"]);
let set2 = new Set(["value2", "value3"]);
let union = new Set([...set1, ...set2]);
console.log(union); // Output: Set { 'value1', 'value2', 'value3' }

Пересечение множеств

let set1 = new Set(["value1", "value2"]);
let set2 = new Set(["value2", "value3"]);
let intersection = new Set([...set1].filter((value) => set2.has(value)));
console.log(intersection); // Output: Set { 'value2' }

Разность множеств

let set1 = new Set(["value1", "value2"]);
let set2 = new Set(["value2", "value3"]);
let difference = new Set([...set1].filter((value) => !set2.has(value)));
console.log(difference); // Output: Set { 'value1' }