如何使用字符串路径访问嵌套对象?

时间:2016-12-20 23:37:35

标签: javascript json javascript-objects

我试图通过传递路径(字符串或其他方式)来访问JavaScript对象的属性:

// In a loop
tableData[i].profile.firstname

其中'profile.firstname'是路径。

有没有办法以这种方式基于路径访问嵌套属性?

let firstnamePath = 'profile.firstname'
let firstname     = tableData[i][firstnamePath]

1 个答案:

答案 0 :(得分:1)

是的,但不是您提出的语法。当您的路径是字符串数组时,这是最简单的方法:

const tableData = (
  { profile: { firstname: 'jim', lastname: 'johnson' }
  }
)
                                                                    
const path = [ 'profile', 'firstname' ]

const valueAtPath = path.reduce((_, x) => _[x], tableData)

console.info(valueAtPath)