Что такое оператор JavaScript Spread? Он позволяет расширять итерируемый объект, например массив, на месте.

Вы знаете оператор JavaScript Spread? Он представлен тремя точками — да, оператор Spread — знаменитый …. Это в основном позволяет выражениям расширять содержимое массивов в местах, где ожидается несколько элементов.

Позвольте мне показать вам более практическим способом; представьте себе следующий код ниже:

Обратите внимание, что в данном случае я не использовал Spread. Поместив массив внутрь другого массива, мы получим довольно необычный результат при печати arr. Теперь попробуйте поставить «…» перед серединой массива, чтобы увидеть, что произойдет, как показано ниже:

Этот оператор используется для распространения элементов массива или объекта при интерпретации во время выполнения. В последнем случае средние элементы были распределены в пределах arr.

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

1. Копирование массивов с помощью Spread

Вы знаете, как скопировать массив в JavaScript? Начинающие программисты могут подумать, что это работает:

Но, к сожалению, жизнь не так проста. В этом случае arr2 является копией не arr, а самого arr, поскольку ссылка на память у обоих одинакова. Сомневаюсь? Затем протестируйте его:

Вы заметили, что когда вы добавляли элемент в arr2, он также появлялся в arr? Это потому что они одинаковые! Один из правильных способов сделать это — использовать специальные функции.

Если вы какое-то время программировали на JavaScript, то наверняка знаете функцию среза, верно? Именно он позволяет копировать массивы. Но знаете ли вы, что мы также можем копировать массивы с помощью Spread?

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

2. Объединение массивов с помощью Spread

Что делать, если я хочу объединить два массива? Мы уже поняли, что использование оператора присваивания (=) не работает. Очевидно, что оператор суммы также не работает. Вы знаете конкретную функцию, которая делает это в JavaScript? Конкат:

Но знаете ли вы, что есть гораздо более простой способ сделать это с помощью оператора Spread?

3. Математические операции со спредом

Знаете ли вы, что вы можете использовать математические функции JavaScript в сочетании с Spread?

Начнем с Math.max(), функции, которая возвращает наибольшее из группы чисел, которые мы передаем ей в качестве параметров.

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

А как же Спред?

4. Строка в массив с расширением

Что делать, если вам нужно преобразовать строку в массив символов? Как в дни C, помните? Это довольно просто, как вы можете видеть ниже:

Спасибо за прочтение! Следуйте за мной на этой платформе, чтобы читать больше материалов по программированию. Хорошего дня и до скорой встречи! 👋

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.