SOURCE

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
    
}


// console.log('tree', JSON.stringify(deepQuery(BigTree, '10101')))


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 命令行工具 X clear

                    
>
console