<html>
<head>
<title>递归算法</title>
</head>
<script type="text/javascript">
var arr= [{
id: '10',
label: '菜单10',
children: [{
id:'1010',
label: '菜单1010',
children:[{
id:'101010',
label: '菜单101010',
children:[{
id:'10101010',
label: '菜单10101010',
children:[]
}]
}]
}]
},{
id: '11',
label: '菜单11',
children: [{
id:'1110',
label: '菜单1110',
children:[{
id:'111010',
label: '菜单111010',
children:[{
id:'11101010',
label: '菜单11101010',
children:[]
}]
}]
}]
}]
//获取指定id的子节点id数组
function getChildIds(arr,id){
var childIds=[]
function a(arr){
for(var i=0;i<arr.length;i++){
if(id.length >=arr[i].id.length){
//console.log(id,arr[i].id,id.startsWith(arr[i].id))
if(id.startsWith(arr[i].id)){
if(arr[i].id.length ==id.length){
childIds.push(arr[i].id)
}
a(arr[i].children)
}
}else{
if(arr[i].id.startsWith(id)){
childIds.push(arr[i].id)
a(arr[i].children)
}
}
}
}
a(arr)
return childIds
}
var childIds= getChildIds(arr,'11')
console.log('childIds>>>>',childIds)
</script>
<body>
</body>
</html>