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

Для объектов:

Допустим, у нас есть следующий объект:

const person = {
   fullName: "Dan Barnes",
   age: 30,
   gender: "male"
}

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

const fullName = person.fullName
cont age = person.age
const gender = person.gender
fullName => "Dan Barnes"
age => 30
gender => "male"

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

const {fullName, age, gender} = person
fullName => "Dan Barnes"
age => 30
gender => "male"

Это здорово и особенно полезно, если вы работаете с вложенными объектами, давайте посмотрим, на этот раз с вложенным объектом (автомобилем):

const person = {
   fullName: "Dan Barnes",
   age: 30,
   gender: "male",
   car: {
      model: "Ford",
      color: "Red",
      year: 2020
   }
}

Ранее синтаксис для деконструкции, чтобы мы могли получить доступ к свойствам автомобиля, выглядел бы так:

const model = person.car.model
cont color = person.car.color
const year = person.car.year
model => "Ford"
color => "Red"
year => 2020

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

const {car: {model, color, year}} = person
model => "Ford"
color => "Red"
year => 2020

Как вы можете, они возвращают тот же результат, но синтаксис намного чище!

Для массивов:

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

const nums = ["one", "two", "three"]

Опять же, используя простой синтаксис, мы можем извлекать данные из нашего массива следующим образом:

const first = nums[0]
const second = nums[1]
const third = nums[2]
first => "one"
second => "two"
third => "third"

Как мы видим, это может стать повторяющимся, и это выглядит не очень красиво, давайте попробуем использовать присваивание деструктуризации, чтобы посмотреть, как это может выглядеть:

const [first, second, third] = nums
first => "one"
second => "two"
third => "third"

Теперь мы видим, что это намного чище и читабельнее!

Что происходит, когда мы хотим получить доступ только к первому и последнему элементам массива? Ну, это на самом деле довольно просто! Доступ к ним будет таким:

const [first, , third] = nums
first => "one"
third => "third"

Теперь, когда мы это увидели, вам может быть интересно, почему между запятыми есть пробел? Это связано с тем, что если вы не поместите пустое пространство, javascript подумает, что вы пытаетесь получить доступ к следующему элементу массива, и даст вам неправильное значение, давайте посмотрим на пример:

const [first, third] = nums
first => "one"
third => "two"

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

Теперь, когда мы увидели несколько примеров деструктивного присваивания как с объектами, так и с массивами, я надеюсь, что это поможет вам в следующий раз, когда вы будете извлекать и присваивать свои данные!