I've the following JSON:
"params": [
{
"name": "a",
"value": "tes",
"isAttr": false,
"children": [
{
"name": "b",
"value": "b",
"isAttr": false,
"uid": "0.529892839025706",
"parent_uid": "0.8096382778603584",
"children": [],
"expanded": true,
"level": 2
}
],
"uid": "0.8096382778603584",
"expanded": true,
"level": 1
},
{
"name": "c",
"value": "c",
"isAttr": false,
"children": [
{
"name": "d",
"value": "d",
"isAttr": false,
"children": [
{
"name": "e",
"value": "e",
"isAttr": false,
"children": [
{
"name": "f",
"value": "f",
"isAttr": false,
"uid": "0.5153285339474678",
"parent_uid": "0.646890748757869",
"children": [],
"expanded": false,
"level": 4
}
],
"uid": "0.646890748757869",
"parent_uid": "0.2041493458673358",
"expanded": false,
"level": 3
}
],
"uid": "0.2041493458673358",
"parent_uid": "0.9416675802785903",
"expanded": true,
"level": 2
},
{
"name": "g",
"value": "g",
"isAttr": false,
"children": [
{
"name": "h",
"value": "h",
"isAttr": false,
"uid": "0.3920950344763696",
"parent_uid": "0.6195112708956003",
"children": [],
"expanded": false,
"level": 3
}
],
"uid": "0.6195112708956003",
"parent_uid": "0.9416675802785903",
"expanded": true,
"level": 2
},
{
"name": "i",
"value": "i",
"isAttr": false,
"children": [
{
"name": "j",
"value": "j",
"isAttr": false,
"children": [
{
"name": "k",
"value": "k",
"isAttr": false,
"children": [
{
"name": "l",
"value": "l",
"isAttr": false,
"uid": "0.009914681548252702",
"parent_uid": "0.68887914926745",
"children": [],
"expanded": false,
"level": 5
}
],
"uid": "0.68887914926745",
"parent_uid": "0.8186752030160278",
"expanded": false,
"level": 4
}
],
"uid": "0.8186752030160278",
"parent_uid": "0.8304482696112245",
"expanded": false,
"level": 3
},
{
"name": "m",
"value": "m",
"isAttr": false,
"children": [
{
"name": "n",
"value": "n",
"isAttr": false,
"uid": "0.25650549842976034",
"parent_uid": "0.14876524219289422",
"children": [],
"expanded": false,
"level": 4
}
],
"uid": "0.14876524219289422",
"parent_uid": "0.8304482696112245",
"expanded": false,
"level": 3
}
],
"uid": "0.8304482696112245",
"parent_uid": "0.9416675802785903",
"expanded": true,
"level": 2
}
],
"uid": "0.9416675802785903",
"expanded": true,
"level": 1
}
]
I need a method that receive uid with the params and return the the specific item in the params with him parent. I did the following, but sometimes I got null in the found:
var findItem = function(params, uid){
if (!params)
return null;
for(var i = 0; i < params.length; i++){
if(params[i].uid == uid)
return params[i];
else{
findItem(params[i].children, uid);
}
}
return null;
}
example for getting null: passing uid for the b
return findItem(params[i].children, uid);(you're missing thereturn)? EDIT: This is not exactly correct, please see my answer.