I need to get a reference from JSON object, the code just following:
var Tree = {
data: {
0: {
pk: 1,
},
1: {
pk: 2,
},
2: {
pk: 3,
children: {
0: {
pk: 11,
},
1: {
pk: 22,
},
2: {
pk: 33,
},
},
},
},
traverse: function(data, pk) {
for (i in data) {
// console.log(data[i]);
if(data[i].pk && data[i].pk == pk)
return data[i];
if (typeof(data[i].children) == 'object')
this.traverse(data[i].children, pk);
};
},
}
The code works very well when traverse the top level items:
>>> Tree.traverse(Tree.data, 1);
Object {pk=1}
But broken when get the child element:
>>> Tree.traverse(Tree.data, 22); undefined
I'm very strange why it's this behavior, when you uncomment the '// console.log(data[i]);' line you will see the object is got but didn't returned.
Any idea about it ?