⬅️ Execute Program Modern JavaScript Destructuring sparse array destructuring const letters = ['a', 'b', 'c', 'd']; const [a, , c] = letters; [a, c]; // Result: ['a', 'c'] undefined when no indexes const letters = ['a', 'b', 'c']; const [a, b, c, d] = letters; [c, d]; // Result: ['c', undefined] collecting the rest (Rest element must be last element) const letters = ['a', 'b', 'c']; const [a, ...others] = letters; others; // Result: ['b', 'c'] object destructuring const key = 'name'; const {[key]: value} = {name: 'Amir'}; value; // Result: 'Amir' in function definitions function getFirstArrayElement([first]) { return first; } getFirstArrayElement(['cat', 'dog', 'horse']); // Result: 'cat' in for-of loops const users = [{name: 'Amir'}, {name: 'Betty'}]; const names = []; for (const {name} of users) { names.push(name); } nested destructuring //arays const dataPoints = [ [10, 20], [30, 40] ]; const [, [, y2]] = dataPoints //Result 40 const user = { name: 'Amir', address: { city: 'Paris', }, }; const {address, address: {city}} = user; [city, address]; //Result