javascript - 当索引位于不同数组中时遍历 JSON 数据

标签 javascript jquery

我有一个 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'];

还有there's no such thing as a JSON object .

关于javascript - 当索引位于不同数组中时遍历 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17470141/

相关文章:

javascript - 在 JQuery 中 2 秒后不显示所有错误消息

javascript - SAPUI5:正确处理点击事件

javascript - jQuery 点击函数 - 获取这个的 ID

javascript - 当所有动画完成时的clearInterval()和setInterval()

jquery - 如何通过ajax将css注入(inject)到文档中?

javascript - 如何使用 JQuery 选择此元素?

javascript - 鼠标光标随动限制为 body

javascript - 拖动图片但从可拖动图像中删除名称元素

javascript - 如何使用knockout.js在特定条件下将点击事件绑定(bind)到body?

javascript - Webpack 和 Angular HTML 图片加载