ساختارشکنی (Object Destructuring)
«ساختارشکنی (Destructuring)» یعنی بازکردن بخش های شی یا آرایه داخل متغیرها. مثل بازکردن کیف مدرسه و جدا کردن دفترها.
شروع سریع با ساختارشکنی شی
با نام خواص، همان نام متغیرها را می گیری. ترتیب مهم نیست.
const person = {
firstName: "John",
lastName: "Doe",
age: 50
};
let { firstName, lastName } = person;
چون با نام می گیری، جابه جایی ترتیب اشکال ندارد.
const person = {
firstName: "John",
lastName: "Doe",
age: 50
};
let { lastName, firstName: fn } = person;
مقدار پیش فرض در ساختارشکنی
اگر خاصیتی نبود، مقدار پیش فرض می دهیم تا خطا نشود.
const person = {
firstName: "John",
lastName: "Doe",
age: 50
};
let { firstName, lastName, country = "US" } = person;
اسم مستعار برای خاصیت
می توانی نام متغیر متفاوت بدهی، اما از همان خاصیت بخوانی.
const person = {
firstName: "John",
lastName: "Doe",
age: 50
};
let { lastName: name } = person;
نکته: ساختارشکنی مخرب نیست؛ شی اصلی تغییر نمی کند.
ساختارشکنی رشته و تکرارپذیرها
رشته و هر «تکرارپذیر (Iterable)» را هم می توان باز کرد.
let name = "W3Schools";
let [a1, a2, a3, a4, a5] = name;
ساختارشکنی آرایه
با جایگاه عنصرها، متغیرها را پر می کنیم.
const fruits = ["Bananas", "Oranges", "Apples", "Mangos"];
let [fruit1, fruit2] = fruits;
می توانی مقدارها را رد کنی و جلو بروی.
const fruits = ["Bananas", "Oranges", "Apples", "Mangos"];
let [first,, , last] = fruits;
حتی می توانی با کلید ایندکس، مقدار خاص را بگیری.
const fruits = ["Bananas", "Oranges", "Apples", "Mangos"];
let { [0]: fruit1, [1]: fruit2 } = fruits;
باقیمانده ها با ...rest
با ...rest بقیه عنصرها در یک آرایه جمع می شوند.
const numbers = [10, 20, 30, 40, 50, 60, 70];
const [a, b, ...rest] = numbers;
ساختارشکنی Map با for..of
کلید و مقدار را با جفت متغیر می گیریم و می چرخانیم.
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
let text = "";
for (const [key, value] of fruits) {
text += key + " is " + value;
}
تعویض مقادیر با ساختارشکنی
بدون متغیر موقت، دو مقدار را عوض کن. ساده و تمیز.
let firstName = "John";
let lastName = "Doe";
[firstName, lastName] = [lastName, firstName];
گام های تمرینی
- یک شی دانش آموز بساز و خواص را جدا کن.
- برای خاصیت غایب، مقدار پیش فرض بگذار.
- از آرایه نمره ها، فقط اول و آخر را بگیر.
برای مقایسه مفاهیم مرتبط ببین: this و سازنده ها. همچنین راهنمای ساختارشکنی شی.
جمع بندی سریع
- ترتیب شی مهم نیست؛ نام مهم است.
- برای آرایه، ترتیب مهم است.
- مقدار پیش فرض خطا را می گیرد.
- با rest بقیه را جمع کن.
- شی اصلی تغییر نمی کند.