অ্যারে ডিস্ট্রাকচারিং অ্যাসাইনমেন্ট হলো একটি অ্যারে থেকে মান বের করার একটি সংক্ষিপ্ত উপায়। এর সিনট্যাক্স অ্যারে লিটারাল এক্সপ্রেশনের মতোই, তবে তা অ্যাসাইনমেন্টের ডান দিকে নয়, বাম দিকে বসে।
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