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

Прежде всего, что такое оператор спреда? Документация (ссылка на которую приведена выше) определяет распространение как синтаксис, который позволяет расширять итерацию, такую ​​как выражение массива или строку, в местах, где ожидается ноль или более аргументов (для вызовов функций) или элементов (для литералов массива), или выражения объекта быть развернутым в местах, где ожидается ноль или более пар ключ-значение (для объектных литералов). На простом английском языке это означает, что мы можем вводить значения в другие с помощью оператора «…».

Взглянув на приведенный выше пример, вы увидите, что мы определили константу parts, то есть массив строк. Мы также определили отдельную константу, lyrics, то есть еще один массив строк. В текстах мы «распределяем» массив между значениями «head» и ‘и’, чтобы вставить значения частей в массив. В результате получается знакомая мелодия из вашей любимой детской песни. Магия!

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

Я рада, что вы спросили.

Давайте рассмотрим пример простого приложения, в котором пользователь может поставить «лайк» определенной книге. У каждой книги есть множество пользователей, которым она нравится. В этом примере, если пользователю не понравилась книга раньше, я хочу добавить этого пользователя в массив. Если книга понравилась пользователю раньше, я хочу удалить этого пользователя из массива. (Мы будем использовать метод .find для этой части, так что сегодня вы как бы получаете урок по условным операторам 2 к 1.) Давайте посмотрим на код, который будет это делать.

В этом примере мы жестко запрограммировали нашего пользователя как myUser и создали переменную updatedUsers (в настоящее время не определено) для ввода условной логики для определения переменной. Первое условие просматривает объект «book» и проверяет, есть ли пользователь с идентификатором, равным 1. Если такой пользователь существует, удалите его из объекта. Второе условие сообщает программе, что если такого пользователя не существует, установите переменную updatedUsers в массив, примените оператор распространения к объекту book.users и включите вместе с ним myUser.

Для контекста, это то, что мы получаем, когда получаем console.log (… book.users) - объект пользователя, которому уже понравилась эта книга. После успешной передачи myUser мы создаем переменную updatedBook, для которой задано значение объекта книги, и обновляем книгу, чтобы отразить новых благодарных пользователей. Наконец, мы выполняем вызов извлечения для «PATCH» объекта книги в базе данных, чтобы сохранить изменения.

Ниже мы зарегистрировали объект updatedBook, чтобы показать, что пользователь был передан.

Как видите, оператор спреда - это удобный небольшой инструмент, который может непосредственно применяться к реальным проблемам. Иногда в программировании, особенно если вы находитесь на ранних этапах понимания, вы обнаруживаете, что думаете: «Когда я на самом деле буду использовать это?» - Я уверен. К счастью, при достаточном изучении вы обнаружите, что эти более тонкие части языка могут значительно облегчить вашу жизнь.