ऐरे डिस्ट्रक्चरिंग असाइनमेंट ऐरे से वैल्यू निकालने का एक संक्षिप्त तरीका है। इसका सिंटैक्स ऐरे लिटरल एक्सप्रेशन जैसा दिखता है, बस यह असाइनमेंट के बाईं ओर लिखा जाता है, दाईं ओर नहीं।
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