Com*_*ode 0 javascript ecmascript-6
如果我有一个总是相同的基础对象:project但有时我必须动态访问它的字段,如果它可以是1个或多个嵌套对象,我该如何访问它的字段,例如:
function (myPath){
return project[myPath];
}
Run Code Online (Sandbox Code Playgroud)
这在使用project["oneField"]时有效myPath("oneField")
但是当它嵌套到更多级别时它不起作用:
myPath("one.two.fieldName") 不起作用: project["one.two.fieldName"]
不是这样的: project."one.two.fieldName"
你可以这样做(ES6):
function getVal(project, myPath){
return myPath.split('.').reduce ( (res, prop) => res[prop], project );
}
// sample data
var project = { one: { two: { fieldName: 'gotcha' } } };
// get inner field value
console.log( getVal(project, 'one.two.fieldName') );Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2657 次 |
| 最近记录: |