Что такое оператор 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.