Сегодня я прочитал эту статью в среде, и я не понимаю, что такое оператор спреда ниже.
Я знаю, что оператор распространения используется для получения массива в качестве параметра в функции. Что делает в приведенном выше коде оператор распространения? Преобразовать объект в массив?
Вы читали статью MDN о спреде? Очевидно нет.
Оператор распространения в сочетании с синтаксисом массива ([]
) берет значения из набора и, за неимением лучшего термина, распределяет их, так что вы получаете массив со всеми значениями в наборе. Конечным результатом является преобразование массива в другой массив, содержащий уникальные значения из исходного массива.
Я знаю, что оператор распространения используется для получения массива в виде параметр в функции
В этом контексте три точки ...
называются синтаксисом остальных параметров , а не синтаксисом расширения . В коде, включенном в ваш вопрос, контекст, в котором используются три точки ...
, известен как синтаксис распространения.
Что делает в приведенном выше коде оператор распространения?
Он перебирает Set
и распространяет (добавляет) записи в Set
в новый массив.
Следующий фрагмент кода показывает простой пример:
const set = new Set([1,2,3]);
const newArr = [...set];
console.info(newArr);
Спасибо за комментарий. Я понимаю, что ...
имеет два разных синтаксиса.
Давайте посмотрим на это построчно.
var entries = [1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 4, 2, 1]
Это создает массив entries
с некоторым списком чисел.
Теперь, когда мы это делаем, new Set(entries)
, мы создаем массив Set
из entries
.
Set
— это набор отдельных элементов, как вы, возможно, уже знаете.
Следовательно, new Set(entries)
дает нам Set
из entries
следующим образом:
Set(8) {1, 2, 3, 4, 5, …}
Теперь оператор ...
распространяет отдельные элементы из Set
, чтобы создать массив, который представляет собой строку - var unique_entries = [...new Set(entries)]
Спасибо за комментарий. Теперь я понимаю!
распространение не является оператором.