«انتساب تجزیهسازی آرایه» روشی مختصر برای استخراج مقادیر از یک آرایه است. نحوهی نگارش آن شبیه به عبارت آرایهی تحتاللفظی است، با این تفاوت که در سمت چپ انتساب میآید، نه در سمت راست.
const frenchNumbers = ['quatre-vingts', 'quatre-vingt-dix', 'cent'];
const [french80, french90, french100] = frenchNumbers;
french80;
// => 'quatre-vingts'
french90;
// => 'quatre-vingt-dix'
french100;
// => 'cent'
چون متغیرها بر اساس موقعیت به مقادیر آرایه نگاشت میشوند، میتوان از نحوهی نگارش تجزیهسازی برای انتساب یا انتساب مجدد چند متغیر در یک عبارت واحد استفاده کرد.
let [a, b] = ['world', 'hello'];
[b, a] = [a, b];
a;
// => 'hello'
b;
// => 'world'
این کار برای آرایههای تودرتو هم انجام میشود.
let [a, b, c] = ['orange', 'purple', 'green'];
[[a, b], c] = [[c, a], b];
a;
// => 'green'
b;
// => 'orange'
c;
// => 'purple'
نحوهی نگارش تجزیهسازی این امکان را میدهد که هنگام نگاشت، از برخی مقادیر صرفنظر کنید؛ برای نمونه، برای نادیده گرفتن موقعیتهای مشخصی در آرایه.
در مثال زیر، فرض کنید تابعی به اسم getUserInfo داریم که آرایهای شامل اسم و فامیل و نشانی خیابان یک کاربر برمیگرداند.
getUserInfo();
// => ["Valerie", "Noir", "Sunny Lane 523"]
const [, , streetAddress] = getUserInfo();
streetAddress;
// => "Sunny Lane 523"
همچنین لازم نیست در انتساب از همهی مقادیر استفاده شود.
const [firstName, lastName] = getUserInfo();
firstName;
// => "Valerie"
lastName;
// => "Noir"
حتی میتوان مقادیر بیشتری از آنچه آرایه در خود دارد استخراج کرد؛ متغیرهای باقیمانده مقدار undefined میگیرند. این کار وقتی مفید است که تعداد مقادیر از پیش معلوم نباشد.
const pickAtLeastOne = ['first choice', 'second choice'];
const [first, second, third, fourth] = pickAtLeastOne;
first;
// => "first choice"
second;
// => "second choice"
third;
// => undefined
fourth;
// => undefined
انتساب تجزیهسازی آرایه میتواند مقادیر پیشفرض را برای وقتی فراهم کند که در آرایهی مبدأ هیچ مقدار متناظری وجود ندارد.
const [first, second, third = 'none selected', fourth] = pickAtLeastOne;
third;
// => 'none selected'
fourth;
// => undefined