我有一个看起来像这样的2个数组:

vars arrayVars = ["s", "p", "o"]

arrayBindings = [     {
        "s": { "type": "uri" , "value": "http://ss.ldm.io/" } ,
        "p": { "type": "uri" , "value": "http://xmlns.com/foaf/0.1/name" } ,
        "o": { "type": "literal" , "value": "ss" }
      } ,
      {
        "s": { "type": "uri" , "value": "http://ss.ldm.io/" } ,
        "p": { "type": "uri" , "value": "http://xmlns.com/foaf/0.1/img" } ,
        "o": { "type": "uri" , "value": "http://fbcdn-sphotos-d-a.akamaihd.net/o.jpg" }
      },
      ...
      ]


我希望能够基于第一个参数动态地导航arrayBindings,基本上是:

arrayBindings[0].s.value使我得到"http://ss.ldm.io/",但这样做的方式却像arrayBindings[0].arrayVars[0].value一样,但无法正常工作。

最佳答案

这是[]标记派上用场的地方:

arrayBindings[0][arrayVars[0]].value




var arrayVars = ["s", "p", "o"]

var arrayBindings = [     {
        "s": { "type": "uri" , "value": "http://ss.ldm.io/" } ,
        "p": { "type": "uri" , "value": "http://xmlns.com/foaf/0.1/name" } ,
        "o": { "type": "literal" , "value": "ss" }
      } ,
      {
        "s": { "type": "uri" , "value": "http://ss.ldm.io/" } ,
        "p": { "type": "uri" , "value": "http://xmlns.com/foaf/0.1/img" } ,
        "o": { "type": "uri" , "value": "http://fbcdn-sphotos-d-a.akamaihd.net/o.jpg" }
      },
]

document.write(arrayBindings[0][arrayVars[0]].value);

09-26 07:37