JavaScript - Object Destructuring
JavaScript - Object Destructuring
Object Destructuring
The object destructuring assignments are JavaScript expressions that allow you to unpack and assign object properties into individual variables. The name of the individual variables can be the same as the object properties or different.
The object destructuring is a very useful feature when you have an object with a lot of properties and you only need a few of them.
Syntax
The syntax of Object Destructing assignment in JavaScript is as follows
const { prop1, popr2 } = obj;
OR
const { prop1: p1, prop12: p2 } = obj; // Renaming variables
OR
const { prop1 = default_vaule } = obj; // With Default values
OR
const { prop1, ...prop2 } = obj; // With rest parameterIn the above syntax, βobjβ is an object. The prop1 and prop2 are object properties. It covers the different use cases of object destructuring.
Example: Basic Object Destructuring
In the example below, the watch object contains the brand and price properties.
We store the values of the object properties into the individual variables using object destructuring. You can see the brandβs value and price variable in the output, which is the same as object property values.
Output
The brand of the watch is Titan and the price is 6000Example: Destructuring with less properties
The code below demonstrates that you can unpack only required object properties and keep others as it is. Here, the Object contains total 4 properties. But we have unpacked only brand and price properties.
Output
The brand of the watch is Titan and the price is 6000Object Destructuring and Renaming Variables
In JavaScript object destructuring, it is not necessary to store the object property values in the variables with the same name as object properties.
You can write a new variable name followed by a colon followed by an object property name. In this way, you can rename the object properties while destructuring the object.
Example
In the example below, we have stored the value of the brand property in the βbdβ variable, the color property in the βcrβ variable, and the dial property in the βdlβ variable.
The values of the new variables are the same as the object properties.
Output
brand: Titan
color: Pink
dial: RoundObject Destructuring and Default Values
In many situations, an object property may contain an undefined value, or particular property doesnβt exist in the object. If the property is undefined, JavaScript destructuring assignment allows you to initialize the variables with default values.
Example
In the below code, the animal object contains the name and age properties.
We destructure the object and try to get the name and color property values from the object. Here, the color property doesnβt exist in the object, but we have initialized it with the default value.
The output shows βyellowβ as the color variableβs value, which is the default value.
Output
Animal Name: Lion
Animal Color: YellowExample
In the below code, we have renamed the variables and assigned the default values to the variables. We used the colon to change the variable name and the assignment operator to assign the default values.
Output
Animal Name: Lion
Animal Color: YellowObject Destructuring and Rest Operator
The syntax of the JavaScript Rest parameter is three dots (β¦). It allows you to collect the remaining object properties into a single variable in the object format. Letβs understand it via the example below.
Example
In the below code, the nums object contains the 4 properties. While destructuring, the object value of the num1 property is stored in the num1 variable. Other remaining properties are stored in the βnumbersβ variable using the rest operator.
In the output, you can see that βnumbersβ contains the object containing the remaining properties of the nums object.
Output
num1: 10
numbers: {"num2":20,"num3":30,"num4":40}Object Destructuring and Function Parameter
You can pass the JavaScript object as a function argument. After that, you can destructure the object in the parameter of the function definition.
Example
In the below code, the nums object contains multiple properties, and we have passed it as an argument of the sum() function.
In the function parameter, we destructure the object and use that variable inside the function body. The function body returns the sum of object properties.
Output
The sum of numbers is: 34