Введение

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

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

Деструктуризация — это суть отделения нескольких значений или свойств от массива и его разборки до основных частей. Чтобы деструктурировать массив, вы должны использовать нотацию []. Ниже приведен простой пример;

постоянный гало = {

тип: ‘FPS’,

текущийРазработчики: «343 Industries»,

издатели: «Microsoft Studios»,

ряд: [

«Гало 1»,

«Ореол 2»,

«Ореол 3»,

«Halo 3: ОДСТ»,

' Halo Reach',

'Halo 4',

«Ореол 5»,

],

hasMultiplayer: правда,

};

const [a, b, c] = halo.series;

console.log(а, б, в);

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

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

const [a, , b, c] = halo.series;

console.log(а, б, в);

Это пропустит второй элемент в свойстве серии («Halo 2») и напечатает только «Halo 1», «Halo 3, «Halo 3: ODST».

Переключение местоположений между значениями/переменными

Если вы хотите поменять местами значения в свойстве, это можно сделать двумя способами.

  1. Использование временной переменной

пусть [первый, второй] = halo.series;

константа временная = первая;

первый = второй;

второй = временный;

console.log(первый, второй);

2. Деструктуризация

[первый, второй] = [второй, первый];

console.log(первый, второй);

Второй способ намного проще и эффективнее, чем добавление временной переменной. Это приводит к более чистому коду.

Разрушение вложенных массивов

Давайте сначала возьмем вложенный массив в качестве примера;

константный вложенный массив = [

«Гало 1»,

«Ореол 2»,

["Halo 3", "Halo 3: ODST"],

'Halo Reach',

'Halo 4',

«Ореол 5»,

];

const [a, , b] = вложенный массив;

console.log(а, б);

Если бы мы деструктурировали этот массив, как мы делали ранее, мы бы получили элементы из (а), но получили бы массив из (б). Обратите внимание, что мы пропустили второй элемент в этом массиве.

Чтобы далее разбить этот вложенный массив на отдельные элементы, нам нужно будет сделать следующее:

константный вложенный массив = [

«Гало 1»,

«Ореол 2»,

["Halo 3", "Halo 3: ODST"],

'Halo Reach',

'Halo 4',

«Ореол 5»,

];

const [a, , [b, c]] = вложенный массив;

console.log(а, б, в);

Во-первых, мы бы разрушили массив, а затем разрушили бы массив внутри этого массива (если это имеет смысл). Это позволит нам извлечь отдельные элементы в этом примере вложенного массива.

Установка значений по умолчанию для массивов

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

const [первый = 1, второй = 1, третий = 1] = [25, 28];

console.log(первый, второй, третий);

Это установит третье значение равным 1 по умолчанию. Однако, если мы не установим значение, оно просто вернет значение undefined.

Разрушение объектов

Мы можем деструктурировать объекты так же, как мы деструктурируем массивы, однако есть небольшая разница в обозначениях. Объекты будут использовать {} для саморазрушения, тогда как массивы будут использовать [].

console.log(тип, издатели, мультиплеер);

const { тип, издатели, hasMultiplayer } = гало;

console.log(тип, издатели, мультиплеер);

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

Деструктурирование вложенных объектов

const firearms = ['Штурмовая винтовка', 'Ракетная установка'];

пусть автоматически = истина;

постоянное оружие = {

[огнестрельное оружие[0]]: {

автоматический,

},

[огнестрельное оружие[1]]: {

автоматический: ложный,

},

случайное оружие: {

плазменный пистолет: «Плазменный пистолет»,

beamRifle: «Лучевая винтовка»,

BattleRifle: «Боевая винтовка»,

},

};

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

console.log(плазменный пистолет, лучевая винтовка, боевая винтовка);

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

константа {

randomWeapons: {плазменный пистолет, лучевая винтовка, боевая винтовка},

} = оружие;

console.log(плазменный пистолет, лучевая винтовка, боевая винтовка);

Установка значений по умолчанию для объектов

Как и в случае с массивами, если не задано значение по умолчанию, значение будет возвращено как неопределенное. Чтобы установить значение по умолчанию для объекта, пример приведен ниже;

const {серия = []} = гало;

console.log(серия);