Search code examples
javascriptecmascript-6destructuringnested-object

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

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