Array.from, оператор спреда и др.

Наборы - это наборы уникальных значений.

Массивы - это наборы значений.

В этой статье рассказывается, как преобразовать наборы в массивы.

Использование утилиты Array.from

Array.from создает новый массив из объекта, подобного массиву или повторяемого объекта.

Набор представляет собой итеративную коллекцию, поэтому мы можем использовать утилиту Array.from для преобразования его в массив.

const set = new Set(['A', 'B', 'C']);
const arr = Array.from(set);
//["A", "B", "C"]

В случае, если мы имеем дело с набором объектов, он выполняет то, что называется неглубокой копией, он просто создает новый массив ссылок на исходные объекты.

const obj1 = { value : 1 };
const obj2 = { value : 2 };
const set = new Set([obj1, obj2]);
const arr = Array.from(set);
console.log(arr[0] === obj1);
//true

Оператор распространения

Синтаксис распространения (...) позволяет расширять итерируемый объект в случаях, когда ожидается несколько аргументов или элементов.

Мы можем использовать оператор распространения для распространения всех значений из набора в новый массив при использовании синтаксиса литерала массива.

const arr = [...set];
//["A", "B", "C"]

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

Обычно мы выполняем преобразование в набор наборов, а затем обратно в новый массив для удаления дубликатов.

Вот пример создания нового массива числовых значений без дубликатов.

const arr = [1, 2, 2, 2, 3];
const newArr = [...new Set(arr)];
//[1, 2, 3]

Вы также можете проверить Как найти элементы в больших массивах.

Спасибо за чтение.