Деструктуризація об’єктів

Деструктуризація об’єктів – це спосіб отримання властивостей об’єкта та присвоєння їх змінним. Це зручний інструмент, який дозволяє легко отримувати значення з об’єкта та розширює читабельність коду. У цьому розділі ми розглянемо основні аспекти деструктуризації об’єктів та надамо приклади її використання.

Основний синтаксис

const person = {
  name: "John",
  age: 30,
  gender: "male"
};

const { name, age, gender } = person;

console.log(name); // "John"
console.log(age); // 30
console.log(gender); // "male"

Значення за замовчуванням

Якщо властивість відсутня у об’єкта або має значення undefined, можна встановити значення за замовчуванням.

const person = {
  name: "John",
  age: 30
};

const { name, age, gender = "male" } = person;

console.log(name); // "John"
console.log(age); // 30
console.log(gender); // "male" (значення за замовчуванням)

Зміна імені змінної

Можна змінити ім’я змінної під час деструктуризації.

const person = {
  name: "John",
  age: 30
};

const { name: fullName, age: years } = person;

console.log(fullName); // "John"
console.log(years); // 30

Деструктуризація в циклах

Деструктуризацію можна використовувати під час перебору масиву об’єктів.

const people = [
  { name: "John", age: 30 },
  { name: "Jane", age: 25 }
];

for (const { name, age } of people) {
  console.log(`${name} is ${age} years old`);
}

Деструктуризація в функціях

Параметри функції також можна деструктуризувати.

const person = {name: 'John', age: 30};

function printUserInfo({name, age, email = 'unknown'}) {
	console.log(`User "${name}" is ${age} y.o. and has "${email}" email address.`);
}

printUserInfo(person); // User "John" is 30 y.o. and has "unknown" email address.

Глибока деструктуризація

Деструктуризація може бути глибокою для отримання вкладених властивостей.

const person = {
  name: "John",
  age: 30,
  address: {
    city: "New York",
    country: "USA"
  }
};

const { name, address: { city, country } } = person;

console.log(name); // "John"
console.log(city); // "New York"
console.log(country); // "USA"

Деструктуризація об’єктів робить код більш зрозумілим та спрощує доступ до властивостей об’єкта. Вона дозволяє ефективно робити розпакування значень та полегшує роботу з вкладеними структурами даних.