Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
function getNames(array,childs,age){
for(var i=0;i<array.length;i++)
{
var item=array[i];
if(item.age==age){
childs.push(item);
return childs;
}
if(item.children&&item.children.length>0){
childs.push(item);
var rs=getNames(item.children,childs,age);
if(rs){
return rs;
}
else{
childs.remove(item);
}
}
}
return false;
}
var aa = [
{name:'BBB',age:141,children:[{name:'bbb1',age:15},{name:'bbb2',age:19}]},
{name:'C1+',desc:'1',age:131,children:[{name:'c2+',desc:'1',age:15,children:[{name:'c3+',desc:'1',age:11}]},{name:'C2+',desc:'1',age:15,children:[{name:'C3+',desc:'1',age:10}]}]}
];
var result=getNames(aa,[],10);
var str="";
for(var i=0;i<result.length;i++){
str+=result[i].name;
}
alert(str);