一个Tree,Tree里面有Children,Children里面有报表,怎么通过Text输入文字后搜索Tree里面的报表?

解决方案 »

  1.   

    用递归比较简单function searchTree(tree, result_list) {
      for (let tree_item of getTreeChildren(tree)) {
        if (isDirectory(tree_item)) {
          result_list = searchTree(tree_item, result_list)
        } else {
          if (matchSearch(tree_item)) {
            result_list.push(tree_item)
          }
        }
      }
      return result_list
    }// 获取 tree得每个子节点
    function getTreeChildren(tree_item) {
      
    }// 判断该节点是不是目录
    function isDirectory(tree_item) {
      
    }// 判断该报表是否符合搜索条件
    function matchSearch(tree_item) {
      
    }// 获取根节点
    function getTree() {
      
    }let tree = getTree()
    let result_list = [] // 搜索结果
    result_list = searchTree(tree, result_list)