2017-07-27 69 views
-1

您能否帮助我如何从obj3访问“名称”键?请找下面的例子。如何在javascript中访问嵌套对象中的密钥

我找好计算策略,我不想做的事:

obj.obj1.obj2.obj3.name

var obj = { 
    obj1 : { 
     obj2: { 
      obj3: { 
       name: 'jhon' 
      } 
     } 
    } 
} 

谢谢!

+1

你想要什么而不是点符号? –

+0

只有两种方式可以访问对象属性'点符号'和'括号符号'ex'obj.key'或'obj [key]'。 – Manish

+0

如果有任何功能在JavaScript或任何其他方法。 – RVCoder

回答

2

理论上可以使用解构ES6例如

const {obj1: {obj2: { obj3: {name: b}}}} = obj console.log(b) //jhon

+0

感谢您的回答,但请您解释一下。 – RVCoder

+0

注意这里没有点符号。 –

+0

这将足以让你走。 [解构](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)。您还应该将此问题标记为已回答。 –

1

可以使用返回的第一个非对象元件的递归函数。

显然,这个函数只适用于嵌套对象只包含一个对象或一个值的结构。

var obj = { 
    obj1 : { 
     obj2: { 
      obj3: { 
       name: 'jhon' 
      } 
     } 
    } 
} 

const getName = (obj) => { 
    if (typeof obj[Object.keys(obj)] === 'object') { 
     return getName(obj[Object.keys(obj)]) 
    } else { 
     return obj[Object.keys(obj)] 
    } 
} 

getName(obj)