使用jQuery循环遍历嵌套对象

嘿大家我试图找到循环数组最有活力的方法并返回特定的值返回特定的值… json结构很深,可能会改变,是否有一个$ .each()公式可以帮助?

例:

var myobj = { obj1: { key1: 'val1', key2: 'val2' }, obj2: { key1: '2val1', key2: { nest1: 'val1', nest2: 'val2', nest3: 'val3' }, key3: { nest1: 'K3val1', nest2: 'K3val2', nest3: [ { nest1: 'val1', nest2: 'val2', nest3: 'val3' }, { nest1: 'val1', nest2: 'val2', nest3: 'val3' } ] } }, obj3: { key1: 'dddddval1', key2: 'val2' } } 

现在让我说我想要检索“ K3val2 ”值,而不是像这样硬编码: myobj.obj2.key3.nest2有一个动态的方式我用$.each() mybe这样做吗?

您可以简单地将调用嵌套到$.each

实例 | 直播来源

 // Loop the top level $.each(myobj, walker); function walker(key, value) { // ...do what you like with `key` and `value` if (value !== null && typeof value === "object") { // Recurse into children $.each(value, walker); } } 

如果你想知道自己有多深,你也可以这样做:

实例 | 直播来源

 var path = ""; // Loop the top level $.each(myobj, walker); function walker(key, value) { var savepath = path; path = path ? (path + "." + key) : key; // ...do what you like with `key` and `value` if (value !== null && typeof value === "object") { // Recurse into children $.each(value, walker); } path = savepath; }