我试图通过传递路径(字符串或其他方式)来访问JavaScript对象的属性:
// In a loop
tableData[i].profile.firstname
其中'profile.firstname'
是路径。
有没有办法以这种方式基于路径访问嵌套属性?
let firstnamePath = 'profile.firstname'
let firstname = tableData[i][firstnamePath]
答案 0 :(得分:1)
是的,但不是您提出的语法。当您的路径是字符串数组时,这是最简单的方法:
const tableData = (
{ profile: { firstname: 'jim', lastname: 'johnson' }
}
)
const path = [ 'profile', 'firstname' ]
const valueAtPath = path.reduce((_, x) => _[x], tableData)
console.info(valueAtPath)