A Destructuring javascript expression makes it possible to unpack values from arrays or properties from objects into distinct variables.
var person = {
firstName : 'san',
lastName : 'bhu'
};
//if you want to unpack firstName and lastName in separate variable
var { firstName, lastName } = person;
console.log(`First Name : ${firstName}, Last Name : ${lastName}`);
//In order to assign different variable name
var { firstName : firstNameChanged, lastName : lastNameChanged } = person;
console.log(`First Name Changed : ${firstNameChanged},
Last Name Changed : ${lastNameChanged}`);
//Assigning a default value Destructuring too.
var {
firstName : firstNameD = 'First Name' ,
lastName : lastNameD = 'Last Name',
isEmployedD = true } = person;
console.log(`First Name : ${firstNameD},
Last Name : ${lastNameD},
is employed : ${isEmployedD}`);
//Nested Object
var student = {
firstName : 'San',
lastName : 'bhu',
department : {
departName : 'Computer Science',
address : {
city : 'San Diego',
country : 'USA',
language : {
EN : 'English',
FR : 'French'
}
}
}
};
//To retrive a first level properties it is easy,
//to destruct departName
var { department : { departName } } = student;
console.log(`Department Name : ${departName}`);
//In order to retrive city
var { department : { address : { city } } } = student;
console.log(`Department City : ${city}`);
//Same way you can retrieve any nested porperties.
//Same thing can be done for array but insted {} use [].
var names = [ 'san bhu', 'top kerry'];
var [first, second ] = names;
console.log(`Names, first : ${first}, second : ${second}`);
//For array you can use Rest operator to collect remaining arrays.
var rollNames = ['san', 'bam', 'tam', 'lam' ];
var [ firstBoy, ...restOfBoys ] = rollNames;
console.log(`First Boy : ${firstBoy}, rests : ${restOfBoys.map((boy) => boy)}`);
//You can also ignore
var [ firstBoyFirst, , thirdBoyThird ] = rollNames;
console.log(`First Boy : ${firstBoyFirst}, Third Boy : ${thirdBoyThird}`);
Reference :
1.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
Comments
Post a Comment