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' }