我有一个 JSON 对象作为
var myJsonObj = {
'key1' : {
'type' : 'key1 type',
'key1-1' : {
'type' : 'key1-1 type',
'data' : 'key1-1 value'
},
'key1-2' : {
'type' : 'key1-2 type',
'data' : 'key1-2 value'
},
'key1-3' : {
'type' : 'key1-3 type',
'key1-3-1' : {
'type' : 'key1-3-1 type',
'data' : 'key1-3-1 value'
},
'key1-3-2' : {
'type' : 'key1-3-2 type',
'data' : 'key1-3-1 value'
},
'key1-3-3': {
'type' : 'key1-3-3 type',
'key1-3-3-1' : {
'type' : 'key1-3-3-1 type',
'data' : 'key1-3-3-1 value'
},
'key1-3-3-2' : {
'type' : 'key1-3-3-2 type',
'data' : 'key1-3-3-2 value'
}
}
}
}
};
我有一个索引数组:
var index = new Array('key1', 'key1-3', 'key1-3-3');
当索引变量中的索引已知时,如何从 myJsonObj 获取数据?
我想获取 myJsonObj['key1']['key1-3']['key1-3-3']
的结果。如何实现输出?
最佳答案
你可以这样做:
myJsonObj[ index[0] ][ index[1] ][ index[2] ]
或者,如果您希望在 index
中允许可变数量的级别:
var tmpObj = myJsonObj;
for (var i = 0; i < index.length; i++)
tmpObj = tmpObj[index[i]];
请注意,使用已知值初始化数组的最佳实践是使用方括号语法:
var index = ['key1', 'key1-3', 'key1-3-3'];
关于javascript - 当索引位于不同数组中时遍历 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17470141/