Ресурсы: find() Документация
Set - это особый вид коллекций(массив), где каждое значение может встречаться лишь однажды.
Например, есть массив с числами:
Код
const arr = [1, 1, 2, 2, 4, 5, 6, 5];
Сформируем из этого массива новый сет:
Код
const set = new Set(arr);
console.log(set);
Выведем его в консоль:
Цитата
Set(5) { 1, 2, 4, 5, 6 }
Как видим, дубли цифр исчезли, со строками работает аналогично:
Код
const arr = ['Alex', 'Ann', 'Olga', 'Alex'];
const set = new Set(arr);
console.log(set);
Цитата
Set(3) { 'Alex', 'Ann', 'Olga' }
Методы для Set
Метод add() Код
const arr = ['Alex', 'Ann', 'Olga', 'Alex'];
const set = new Set(arr);
set.add('Ivan');
set.add('Alex');
console.log(set);
Несмотря на то, что мы попытались добавить еще одну строку '
Alex', которая была убрана при формировании сета, в консоли мы видим, что такая строка по-прежнему одна:
Цитата
Set(4) { 'Alex', 'Ann', 'Olga', 'Ivan' }
Метод
add() в результате своей работы возвращает сам набор, поэтому можно использовать цепочку:
Код
set.add('Ivan')
.add('Markus');
set.delete(value) - удалить что-то из набора
set.has(value) - проверить на наличие какого-то элемента в наборе (вернёт либо
true, либо
false)
set.clear() - полностью очистить набор
set.size - свойство возвращает размер набора
Перебор для Set
Запускаем
for...of Код
const arr = ['Alex', 'Ann', 'Oleg', 'Alex']; // начальный массив
const set = new Set(arr); // формируем из него сет, убираются дубли
set.add('Ivan').add('Ann'); // добавляем новые элементы, дубль игнорируется
for (let value of set) {
console.log(value);
}
Цитата
Alex
Ann
Oleg
Ivan
Второй вариант с помощью
forEach() Код
set.forEach((value, valueAgaing, set) => {
console.log(value, valueAgaing);
})
Цитата
Alex Alex
Ann Ann
Oleg Oleg
Ivan Ivan
Второй аргумент
valueAgaing добавлен для совместимости, поскольку в изначальном массиве нет ключей, а только значения.
Цитата
Объект Set - это особый вид коллекции, "множество" значений (без ключей), где каждое значение уникально(может встречаться в коллекции лишь один раз).
Метод
set.values() возвращает новый итератор, который содержит значения для каждого элемента в объекте set в порядке их добавления.
Пример:
Код
console.log(set.values());
Получаем:
Цитата
[Set Iterator] { 'Alex', 'Ann', 'Oleg', 'Ivan' }
Методы
set.keys() и
set.entries() используются для обратной совместимости с
[i]Map[/i]
Функция-помощник для фильтрации любого массива
Код
function unique(arr) {
return new Set(arr);
}
Из возвращаемого набора
Set мы можем сформировать самый обычный массив со всеми доступными ему методами
Код
function unique(arr) {
return Array.from(new Set(arr));
}
Массив передаётся в создаваемый
Set, в нём мы избавляемся от дублей и потом обратно формируется массив с уникальными значениями, массив возвращается функцией
Код
console.log(unique(arr));
Цитата
['Alex', 'Ann', 'Oleg', 'Ivan']
Добавлять комментарии могут только зарегистрированные пользователи.