如何使用括号表示法中的单个变量访问深度值?

Mar*_*rco 1 javascript variables

我想知道如何做以下 - 我有以下数据:

dta = {
       "fielddata": {
           "text1": "4B030C2E-3D53-4DF8-A3535EF377B45DE5",
           "text2": "Unlabeled"
       }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用括号表示法访问它

var result = dta["fielddata"]["text1"];
Run Code Online (Sandbox Code Playgroud)

没有问题,我可以使用这样的变量

var val1 = "fielddata",
    val2 = "text1",
    acc = dta[val1][val2];

log(acc);
Run Code Online (Sandbox Code Playgroud)

再次,太棒了 - 但是当我只有一个带有点符号的变量时呢?

喜欢,如果我只有

var val = "fielddata.text1",
    acc = dta[val];
log(acc);
Run Code Online (Sandbox Code Playgroud)

这会产生一个未定义的.有关如何去做的任何想法?

非常感谢!马尔科

小智 5

var val = "fielddata.text1",
    acc = dta,               // reference the base object
    parts = val.split('.'),  // split the val into an Array of individual parts
    i;

  // Iterate the parts, updating acc each time
for( i = 0; i < parts.length; i++ )
    acc = acc[parts[i]];
Run Code Online (Sandbox Code Playgroud)