js根据id查找对应树结构节点路径

js根据id查找对应树结构节点路径

话不多说,直接贴代码
第一种是通过字符串保存

//  tree:树结构;value: 对应节点;path:每次保存相应路径的字符串
function findPathbyId(tree,value,path){
     if (!path) {
         path= ''
     }
     for(var i=0;i<tree.length;i++){
         let tempPath=path
         tempPath = `${tempPath ? tempPath + '/' : tempPath}${tree[i].label}` // 避免出现在最前面的/
         if(tree[i].value==value){
             return tempPath
         } else if(tree[i].children){
             let reuslt=findPathbyId(tree[i].children,value,tempPath)
             if(reuslt){
                 return reuslt
             }
         }
     }
 }

第二种是通过数组保存

//  tree:树结构;value: 对应节点;path:每次保存相应路径的字符串
function getChidlren(tree, value, path) {
  if (!path) {
    path = []
  }
  for (var i = 0; i < tree.length; i++) {
    var tempPath = [...path]
    tempPath.push(tree[i].label)
    if (tree[i].value === value) {
      return tempPath
    }
    if (tree[i].children) {
      const reuslt = getChidlren(tree[i].children, value, tempPath)
      if (reuslt) {
        return reuslt
      }
    }
  }
}

版权声明:本文为YangChaoYue1221原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。