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
}
}
}
}