通过字符串引用嵌套的 json 对象属性

mon*_*gun 3 javascript angularjs

我知道我在这里遗漏了一些明显的东西,但假设我有一个如下所示的 JSON 对象:

testObj = {
            levelOne: {
                       levelTwo: []
            }
}
Run Code Online (Sandbox Code Playgroud)

我还有一个字符串值:

var prop = 'levelOne.levelTwo';
Run Code Online (Sandbox Code Playgroud)

我正在尝试确定是否有任何方法可以基本上做这样的事情:

var x = testObj[prop];
Run Code Online (Sandbox Code Playgroud)

这行不通,但是有什么办法可以做到同等的效果吗?

jun*_*var 5

没有简单的方法(例如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);
Run Code Online (Sandbox Code Playgroud)