const BigTree=[
{
'id': '1',
'name': '教学素材管理',
'children':[
{
'id': '101',
'name': '教学素材',
'children':[
{
'id': '10101',
'name': '修改',
},
{
'id': '10102',
'name': '添加',
}
]
}, {
'id': '102',
'name': '测试试题',
},
{
'id': '103',
'name': '问题任务',
}
]
}, {
'id': '2',
'name': '基础数据管理',
'children':[
{
'id': '201',
'name': '专业设置',
},
{
'id': '202',
'name': '专业管理',
}
]
}
]
function deepQuery(tree, id) {
let findNode = null
function deepSearch(tree, id) {
for(let i = 0;i < tree.length; i++){
if(tree[i].children && tree[i].children.length > 0) {
deepSearch(tree[i].children, id)
}
if (tree[i].id === id) {
findNode = tree[i]
break
}
}
}
deepSearch(tree, id)
return findNode
}
function deepFind(tree, id) {
let findNode = null
function deepSearch(tree, id) {
for(let i = 0;i<tree.length; i++) {
if (tree[i]?.children?.length) {
deepSearch(tree[i].children, id)
}
if (tree[i].id === id) {
findNode = tree[i]
break
}
}
}
deepSearch(tree, id)
return findNode
}
console.log('tree', JSON.stringify(deepFind(BigTree, '10101')))
console