Destructuring With Nested Objects And Default Values
I'm using destructuring to declare some variables like this: const { a, b, c } = require('./something'), { e = 'default', f = 'default'} = c; Is there a way to make this into
Solution 1:
The above code will not work if the object does not have c in it
const { a, b, c: { e = 'default', f = 'default'}} = {a: 1, b: 2}
console.log(`a: ${a}, b: ${b}, e: ${e}, f: ${f}`)
const { a, b, c: { e = 'default', f = 'default'} ={} } = {a: 1, b: 2}
console.log(`a: ${a}, b: ${b}, e: ${e}, f: ${f}`)
Solution 2:
Just replace =
with :
:
const {a, b, c: {e = 'default', f = 'default'}} = require('./something')
Demo:
const { a, b, c: { e = 'default', f = 'default'} } = {a: 1, b: 2, c: {e: 3}}
console.log(`a: ${a}, b: ${b}, e: ${e}, f: ${f}`)
It prints:
a:1,b:2,e:3,f:default
Solution 3:
This example will help you to understand the destructing of array
and object
with fallback values.
You can use the =
symbol for adding fallback
or default
value while destructing.
const person = {
firstName: 'Nikhil',
address: {
city: 'Dhule',
state: 'MH'
},
/*children: [
{
name: 'Ninu',
age: 3
}
]*/
}
const {
firstName,
address: {
city,
state
},
children: {
0: {
name='Oshin'// Fallback for name is string i.e 'Oshin'
}={} // Fallback for 1st index value of array is blank object
}=[] // Fallback for children is blank array
} = person;
console.log(`${firstName} is from ${city} and his first child name is ${name}`);
Post a Comment for "Destructuring With Nested Objects And Default Values"