'Destructuring Nested objects in javascript | Destructure second level parent and child Objects
I need to destructure and get values of title, child, childTitle from this object
const obj1 = {
title : 'foo',
child : {
title2 : 'bar'
}
}
let {title, child} = obj1;
console.log(title) // 'foo'
console.log(child) // { title : 'bar' }
// but couldn't get child object this way
let { title , child : { title2 } } = obj1;
console.log(title) // 'foo'
console.log(child) // undefined
console.log(title2) // 'bar'
How could I get the child object?
Solution 1:[1]
child: { title2 } is just destructuring the child property. If you want to pick up the child property itself simply specify it in the statement: let { title, child, child: { title2 } } = obj1;
const obj1 = {
title: 'foo',
child: {
title2: 'bar'
}
}
let { title, child, child: { title2 } } = obj1;
console.log(title);
console.log(child);
console.log(title2);
Solution 2:[2]
When doing child : { child : { title2 } }, child is not instantiate, so you can still doing { child, child : { title2 } } to get both title2 and child.
As simple as :
const obj1 = {
title: "foo",
child: {
title2: "bar"
}
};
const { title, child, child : { title2 } } = obj1
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Andy |
| Solution 2 | Fabien Greard |
