17

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?

3
  • What do you mean get? You can't console log the object, but you can do other things with objects. Like using typeOf: stackoverflow.com/a/13045455/8716187 Commented Jan 21, 2019 at 15:48
  • ^^^ changing the code, yes you can ^^^ Commented Jan 21, 2019 at 15:54
  • @Wookies-Will-Code hmmmmmm, yes objects can be logged in console. The question is more towards getting(destructuring) the child object along with some child property. Tq anyways Commented Jan 22, 2019 at 6:31

2 Answers 2

38

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);

Sign up to request clarification or add additional context in comments.

Comments

4

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  

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.