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]
Вы также можете проверить Как найти элементы в больших массивах.
Спасибо за чтение.