如何在javascript中从嵌套对象访问密钥

时间:2017-07-27 09:28:22

标签: javascript

你能帮我解决一下如何从obj3访问“name”键。请在下面找到示例。

我正在寻找好的approch,我不想这样做:

obj.obj1.obj2.obj3.name

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

谢谢!

2 个答案:

答案 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)