Reputation: 879
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?
Upvotes: 17
Views: 11069
Reputation: 63524
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);
Upvotes: 38
Reputation: 1894
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
Upvotes: 4