我知道我在这里遗漏了一些明显的东西,但是说我有一个看起来像这样的JSON对象:
testObj = {
levelOne: {
levelTwo: []
}
}
我还有一个字符串值:
var prop = 'levelOne.levelTwo';
我正在尝试确定是否有基本方法可以执行以下操作:
var x = testObj[prop];
那是行不通的,但是有什么办法可以做到这一点吗?
答案 0 :(得分:1)
执行此操作没有简单的方法(例如testObj[prop]
),但是reduce
函数非常适合:
let nestedProp = (obj, path) =>
path.split('.').reduce((obj, prop) => obj[prop], obj);
let x = nestedProp({levelOne: {levelTwo: [5]}}, 'levelOne.levelTwo');
console.log(x);
答案 1 :(得分:0)
您可以使用动态键访问对象中的属性,但不能向下访问多个级别。
即您可以执行const a = testObject["levelOne"]
,但不能尝试。 (Docs)
但是,有一些辅助函数库具有执行此操作的功能。一个示例是lodash.get function