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);