JavaScript > Objects and Arrays > Array Basics > Array destructuring
Array Destructuring in JavaScript
Learn how to use array destructuring in JavaScript to extract values from arrays into distinct variables, simplifying your code and making it more readable. This tutorial covers the basics, advanced techniques, and practical use cases.
Introduction to Array Destructuring
Array destructuring is a powerful feature introduced in ES6 (ECMAScript 2015) that allows you to unpack values from arrays (or properties from objects) into distinct variables. It provides a concise and readable way to extract and assign array elements to variables. Instead of accessing each element by its index, you can simultaneously assign multiple variables with values from the array.
Basic Array Destructuring
This example demonstrates the most basic form of array destructuring. The syntax `[fruit1, fruit2, fruit3] = myArray` assigns the first element of `myArray` to `fruit1`, the second to `fruit2`, and the third to `fruit3`. The variables on the left-hand side of the assignment mirror the structure of the array on the right-hand side.
const myArray = ['apple', 'banana', 'cherry'];
const [fruit1, fruit2, fruit3] = myArray;
console.log(fruit1); // Output: apple
console.log(fruit2); // Output: banana
console.log(fruit3); // Output: cherry
Skipping Elements
You can skip elements in an array during destructuring by leaving a comma without a variable name. In this example, the second element ('banana') is skipped, and `fruit3` gets assigned the value 'cherry'.
const myArray = ['apple', 'banana', 'cherry', 'date'];
const [fruit1, , fruit3] = myArray;
console.log(fruit1); // Output: apple
console.log(fruit3); // Output: cherry
Rest Parameter
The rest parameter (`...`) allows you to capture the remaining elements of an array into a new array. In this example, `fruit1` gets assigned 'apple', and `restOfFruits` becomes an array containing the remaining elements: ['banana', 'cherry', 'date'].
const myArray = ['apple', 'banana', 'cherry', 'date'];
const [fruit1, ...restOfFruits] = myArray;
console.log(fruit1); // Output: apple
console.log(restOfFruits); // Output: ['banana', 'cherry', 'date']
Default Values
You can provide default values for variables during destructuring. If an element at a particular index doesn't exist in the array, the default value will be assigned. In this example, since `myArray` only has one element, `fruit2` is assigned the default value 'banana'.
const myArray = ['apple'];
const [fruit1, fruit2 = 'banana'] = myArray;
console.log(fruit1); // Output: apple
console.log(fruit2); // Output: banana
Swapping Variables
Array destructuring provides a concise way to swap the values of two variables without using a temporary variable. The expression `[a, b] = [b, a]` simultaneously assigns the value of `b` to `a` and the value of `a` to `b`.
let a = 1;
let b = 2;
[a, b] = [b, a];
console.log(a); // Output: 2
console.log(b); // Output: 1
Nested Array Destructuring
You can destructure nested arrays. The structure of the destructuring assignment must match the structure of the array. In this case, the second element of `myArray` is itself an array, so the destructuring pattern reflects that.
const myArray = ['apple', ['banana', 'cherry']];
const [fruit1, [fruit2, fruit3]] = myArray;
console.log(fruit1); // Output: apple
console.log(fruit2); // Output: banana
console.log(fruit3); // Output: cherry
Real-Life Use Case: Function Arguments
Array destructuring is commonly used when working with function arguments. It allows you to directly extract values from an array passed as an argument, making the function code cleaner and more readable. This is particularly useful when dealing with functions that accept coordinate pairs, RGB values, or other structured data.
function printCoordinates([x, y]) {
console.log(`X: ${x}, Y: ${y}`);
}
const coordinates = [10, 20];
printCoordinates(coordinates); // Output: X: 10, Y: 20
Best Practices
Interview Tip
Be prepared to explain how array destructuring works, including its syntax, use cases, and benefits. Common interview questions might involve swapping variables, skipping elements, or using the rest parameter.
When to use them
Array destructuring shines when you need to extract specific values from an array and assign them to variables. It is particularly effective for dealing with function arguments, returning multiple values from a function, and simplifying data manipulation.
Alternatives
The traditional alternative to array destructuring is accessing array elements using their index (e.g., `myArray[0]`, `myArray[1]`). While this approach works, it can be less readable and more verbose, especially when dealing with multiple elements.
Pros
Cons
FAQ
-
What happens if the number of variables on the left side of the destructuring assignment is greater than the number of elements in the array?
The extra variables will be assigned the value `undefined` if no default value is provided. If default values are provided, those defaults will be used. -
Can I use array destructuring to modify the original array?
No, array destructuring does not modify the original array. It only assigns values from the array to new variables. -
Is array destructuring supported in all browsers?
Array destructuring is a feature of ES6, which is supported by most modern browsers. However, older browsers may require transpilation using tools like Babel.