首页 > 解决方案 > 我可以只用一个字符串访问一些嵌套对象中的值吗?

问题描述

我想知道是否可以只用一个字符串访问嵌套对象中的值。假设我有一个这样的对象:

skill: {
    skillDetails: {
        developerDetails: {
            developerName: "mr. developer"
        }
    }
}

有没有办法我可以做这样的事情,通过“JSON路径”获取价值:skill["skillDetails.developerDetails.developerName"]

我问这个的原因是因为我试图将key& 对象传递给一个基本上返回的函数(我无法修改)object[key]

不确定这是否可能,所以我想我会向你们寻求一些建议。

谢谢!

标签: javascriptjsonobject

解决方案


不幸的是,没有快速的内置方法来实现这一点——你需要一个辅助函数。

lodash使用_.get(obj, property).

从文档:

var object = { 'a': [{ 'b': { 'c': 3 } }] };

_.get(object, 'a[0].b.c');
// → 3

_.get(object, ['a', '0', 'b', 'c']);
// → 3

_.get(object, 'a.b.c', 'default');
// → 'default'

推荐阅读