如何使用字符串访问对象的嵌套属性?

Nor*_*mal 2 javascript

我有以下字符串:

const str = "prop1.prop2.prop3"
Run Code Online (Sandbox Code Playgroud)

我想使用这个字符串来访问以下对象的属性 prop3:

const obj = {
   prop1: {
      prop2:{
         prop3:{
            // ---- destination point
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道该怎么做?一定有什么东西不断地添加obj[currentProp]等等。还有..没有更快的方法吗?我担心我把时间浪费在更容易实现的事情上

小智 12

这就是我的方法:

const access = (path, object) => {
  return path.split('.').reduce((o, i) => o[i], object)
}

const obj = {
  prop1: {
    prop2: {
      prop3: {
        value: 'foo'
      }
    }
  }
}

const str = 'prop1.prop2.prop3'

console.log(access(str, obj)) // {"value": "foo"}
Run Code Online (Sandbox Code Playgroud)