Hey everyone I am trying t find the most dynamic way to loop through an array & return specific values return specific values… The json is deeply structured & may change, could there be a $.each() formula that can help?
Example:
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' } }
now lets say i want to retrieve “K3val2
” value yet instead of hardcoding it like so: myobj.obj2.key3.nest2
is there a dynamic way I do this with $.each()
mybe?
You can simply nest calls to $.each
:
// Loop the top level$.each(myobj, walker);function walker(key, value) { // ...do what you like with `key` & `value` if (value !== null && typeof value === "object") { // Recurse into children $.each(value, walker); }}
If you want to know how deep you are, you can do that too:
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` & `value` if (value !== null && typeof value === "object") { // Recurse into children $.each(value, walker); } path = savepath;}
No comments:
Post a Comment