简体   繁体   English

如何从JavaScript中的嵌套对象访问密钥

[英]How to access key from nested object in javascript

Can you please help me how can I access "name" key from obj3. 能否请您帮我如何从obj3访问“名称”键。 Please find below example. 请找到以下示例。

I am looking for good approch, I dont want to do : 我正在寻找良好的方法,我不想做:

obj.obj1.obj2.obj3.name obj.obj1.obj2.obj3.name

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

Thanks! 谢谢!

您可以在理论上使用es6解构

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

You can use a recursive function that returns the first non object element. 您可以使用返回第一个非对象元素的递归函数。

Obviously this functions works only for structures where the nested objects contains only one object or one value. 显然,此功能仅适用于嵌套对象仅包含一个对象或一个值的结构。

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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM