Оператор распространения или синтаксис распространения (…) — это функция ES6 JavaScript, которая дает вам доступ к внутренностям итерируемого объекта. Это позволяет расширять итерируемый объект, такой как выражение массива или строка, в местах, где ожидается ноль или более аргументов (для вызовов функций) или элементов (для литералов массива).

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

Расширение массивов

Мы можем использовать оператор распространения для строки или массива, и он поместит содержимое итерации в отдельные элементы.

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

Иногда нам может понадобиться преобразовать строку в список символов, тогда мы можем использовать оператор распространения.

Копирование объекта и массива

В JavaScript мы можем легко скопировать массив в другой массив, используя оператор распространения.

Если вы хотите добавить какое-либо свойство в новый массив, а также скопировать выбранный массив в новый массив, вы можете использовать оператор распространения. Здесь мы можем

см. массив teamMember, скопируйте массив boyName с некоторым обычным свойством массива.

Точно так же мы можем копировать объекты с помощью оператора распространения.

Как видим, мы успешно скопировали объект obj1 в obj2. Эта функция имеет множество реальных вариантов использования.

Объединение массивов

Давайте воспользуемся преимуществом, чтобы расширить массив с помощью оператора распространения. Допустим, у нас есть списки адресов электронной почты подписчиков из двух разных источников blog1 и blog2, и мы хотим их объединить.

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

Элемент массива как аргумент функции

Здесь мы собираемся обсудить, что мы можем использовать элемент массива в качестве аргумента функции. Здесь у функции addNumber есть три аргумента x,y,z, которые мы добавляем в консоль.

Затем в массив args мы помещаем элемент массива для вызова функции addNumber. В функции мы используем оператор распространения вместо обычного массива аргументов для вызова функции. Здесь мы видим, что массив будет разбит на отдельные элементы. Если мы запустим это, он просто поставит 9 здесь. Если мы поместим 4-й элемент в массив args, он все равно будет 9. Он просто игнорирует 4-й элемент в нем, потому что функция вызывает только три элемента.

Объединение массивов

Мы можем использовать оператор распространения для конкатенации массива. Как правило, мы используем метод concate для объединения массивов.

Мы можем легко сделать это, используя оператор распространения.

Здесь мы видим, как массивы arr1 и arr2 объединяются с помощью оператора распространения для создания единого списка массивов.

Экономьте время и память, используя оператор спреда

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

мы можем видеть в классе массива нашего ученика, раздел и предметы являются общими. мы повторяем это ключевое свойство здесь. Это требует времени и памяти. Мы можем избавиться от этого, используя простой оператор распространения. В массиве «студенты» мы используем «общий» оператор спреда.

Оператор отдыха

Оператор rest выглядит точно так же, как оператор спреда — всего три точки (…), но в основном он противоположен оператору спреда. оператор расширения расширяет или расширяет массив на его элементы, но остальные собирают несколько элементов и сжимают их в один элемент массива. Поскольку это метод массива, позвольте мне привести вам пример.

Поскольку эта функция имеет два элемента, один из них является множителем, а другой представляет собой аргументы с тремя точками, которые передаются в качестве аргумента. Можно сказать, что это остаточный оператор, так как у функции есть три точки с аргументом. Вот как мы можем определить, что это оператор остатка, а не оператор спреда.

В функцию мы можем добавить столько аргументов, сколько захотим. Первое число, которое мы передаем, будет множителем, а затем все, что мы передали, будет сжато в массиве с именем args, а затем мы собираемся вернуть точечную карту args, поскольку это массив, мы можем использовать метод массива, такой как карта и мы собираемся сопоставить каждый элемент с этим, чтобы вернуть элемент умножения на множитель.

Здесь пусть первое число массива 2 — это множитель, а остальные 1,2,3 — это массив аргументов, что 2 будет умножать 1,2,3 и мы найдем 2,4,6 в логе.

Если мы добавим 4 в массив, мы получим 2,4,6,8.

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

источник: freecodecamp.com, stackabuse.com, developer.mozilla.org