JavaScript: деструктуризация массива (ES6)
Полное руководство по извлечению значений из массивов
Назначение деструктуризации - это функция, представленная в ECMAScript 2015 (ES6), которая позволяет нам получать доступ к значениям массивов или свойствам объектов, а затем легко присваивать их отдельным переменным. Обсуждение возможностей деструктуризации в массивах будет нашей основной целью в этом сообщении в блоге.
Начнем с примера, поясняющего базовое назначение переменных с деструктуризацией массива:
Элементы в массиве colors
присвоены трем переменным; color1
, color2
и color3
с использованием деструктуризации массива. Обратите внимание, что переменные устанавливаются слева направо, и каждая переменная сопоставляется с соответствующим элементом с тем же индексом в массиве colors
.
Значения по умолчанию
Если создано больше переменных, чем значений в массиве, который он распаковывает, каждой лишней переменной будет присвоено значение undefined
. Деструктуризация массива позволяет нам присваивать переменным значения по умолчанию, если у них нет соответствующего элемента массива с тем же индексом.
В первой части приведенного ниже примера значение undefined
присваивается переменной с именем color3
, потому что у нее нет ни соответствующего элемента в массиве colors
, ни значения по умолчанию.
После установки значений по умолчанию для переменных во второй части примера, значения переменных color1
и color2
заменяются на red
и blue
соответственно. Значение color3
изменяется с undefined
на yellow
, что является назначенным ему значением по умолчанию.
Пропуск некоторых ценностей
Деструктуризация позволяет нам игнорировать определенные возвращаемые значения, которые мы не хотим присваивать переменным, и позволяет нам присваивать только те, которые нам интересны.
Как вы видите в приведенном выше примере, мы можем пропустить второй элемент массива colors
, используя разделитель запятой . Переменным присваиваются только значения red
и yellow
, а для пропущенного значения используется запятая; blue
.
Оператор отдыха
Используя arest operator (…)
, мы можем назначить некоторые элементы массива переменным, а оставшуюся часть - конкретной переменной:
color1
и color2
принимают первые два значения в массиве, а оператор rest помещает остальные элементы массива в переменную colorRest
. Оператор rest всегда появляется как последний элемент в массиве деструктуризации.
Обмен переменными
Еще одна полезная функция деструктуризации массива - замена переменных. Раньше создание временной переменной для хранения копии одного из замененных значений было способом изменить порядок двух значений в массиве, которому они назначаются. Теперь две переменные можно легко поменять местами в одном выражении деструктуризации, например:
Деструктуризация с помощью функций
Мы также можем извлечь значения массива, возвращаемые при выполнении функции, чтобы иметь возможность легко получить доступ к ее элементам. Вот краткий пример:
В этом примере показано, как деструктурируется возвращаемый массив из трех цветов из функции colors()
.
Заключение
Синтаксис деструктуризации массива ES6 помогает нам писать краткий и более читаемый код за счет сокращения строк, используемых для объявления дополнительных переменных, и извлечения только тех значений, которые нам нужны.
Другой мой пост посвящен основам деструктуризации объектов в JavaScript, не стесняйтесь взглянуть:
JavaScript: деструктуризация объектов (ES6)
Спасибо, что прочитали мой пост, и не стесняйтесь проверить Веб-документацию MDN и Разрушение ES6: Полное руководство, если вы хотите узнать больше по этой теме.