Skip to content

JavaScript Destruktizatsiya (Destructuring)

Destruktizatsiya tayinlash sintaksisi

Destruktizatsiya tayinlash sintaksisi obyektlarni o'zgaruvchilarga ajratish imkonini beradi:

js
let {firstName, lastName} = person;

Obyektni destruktizatsiya qilish

Misol

js
// Obyekt yaratish
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50
};

// Destruktizatsiya
let {firstName, lastName} = person;

Xususiyatlar tartibi muhim emas:

js
// Obyekt yaratish
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50
};

// Destruktizatsiya
let {lastName, firstName} = person;

Eslatma

Destruktizatsiya buzg'unchi emas. U asl obyektni o'zgartirmaydi.


Obyektning standart qiymatlari

Mavjud bo'lmasligi mumkin bo'lgan xususiyatlar uchun standart qiymatlarni belgilash mumkin:

js
// Obyekt yaratish
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50
};

// Destruktizatsiya
let {firstName, lastName, country = "US"} = person;

Obyekt xususiyatining taxallusi (alias)

js
// Obyekt yaratish
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50
};

// Destruktizatsiya
let {lastName : name} = person;

Satrni destruktizatsiya qilish

Destruktizatsiyaning bir ishlatilishi — satr belgilarini ajratish:

js
// Satr yaratish
let name = "W3Schools";

// Destruktizatsiya
let [a1, a2, a3, a4, a5] = name;

Eslatma

Destruktizatsiya istalgan iterable (takrorlanadigan) bilan ishlatilishi mumkin.


Massivni destruktizatsiya qilish

Massiv o'zgaruvchilarini o'z o'zgaruvchilarimizga olish:

js
// Massiv yaratish
const fruits = ["Bananas", "Oranges", "Apples", "Mangos"];

// Destruktizatsiya
let [fruit1, fruit2] = fruits;

Massiv qiymatlarini o'tkazib yuborish

Ikki yoki undan ko'p vergul yordamida massiv qiymatlarini o'tkazib yuborish mumkin:

js
// Massiv yaratish
const fruits = ["Bananas", "Oranges", "Apples", "Mangos"];

// Destruktizatsiya
let [fruit1,,,fruit2] = fruits;

Massiv pozitsiya qiymatlari

Massivning ma'lum indeksidagi qiymatlarni olish mumkin:

js
// Massiv yaratish
const fruits = ["Bananas", "Oranges", "Apples", "Mangos"];

// Destruktizatsiya
let {[0]:fruit1, [1]:fruit2} = fruits;

Rest xususiyati

Destruktizatsiya sintaksini rest xususiyati bilan tugatish mumkin. Bu sintaksis barcha qolgan qiymatlarni yangi massivga saqlaydi:

js
// Massiv yaratish
const numbers = [10, 20, 30, 40, 50, 60, 70];

// Destruktizatsiya
const [a, b, ...rest] = numbers;

Map-larni destruktizatsiya qilish

js
// Map yaratish
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

// Destruktizatsiya
let text = "";
for (const [key, value] of fruits) {
  text += key + " is " + value;
}

JavaScript o'zgaruvchilarini almashtirish

Destruktizatsiya tayinlashlari yordamida ikki o'zgaruvchining qiymatlarini almashtirish mumkin:

js
let firstName = "John";
let lastName = "Doe";

// Destruktizatsiya
[firstName, lastName] = [lastName, firstName];