你能帮我解决一下如何从obj3访问“name”键。请在下面找到示例。
我正在寻找好的approch,我不想这样做:
obj.obj1.obj2.obj3.name
var obj = {
obj1 : {
obj2: {
obj3: {
name: 'jhon'
}
}
}
}
谢谢!
答案 0 :(得分:2)
理论上你可以用es6进行解构,例如
const {obj1: {obj2: { obj3: {name: b}}}} = obj
console.log(b) //jhon
答案 1 :(得分: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)