输出从根节点到目标节点的链路
需求中要求找到一颗树中从根节点到目标节点的链路,并打印:
思路:使用递归方式输出,递归退出条件是找到目标节点,
递归退出时,拼接字符串,然后返回值为true,
如果递归调用的返回值为true,说明是这条链路,应该继续拼接字符串
如果不满足的情况时应该返回false
let ResultArr =[]
findParentFolder(arr, targetId) {
for (let i = 0; i < arr.length; i += 1) {
if (arr[i].id === targetId) {
ResultArr.push(arr[i].name || '-');
return true;
}
if (arr[i].children && arr[i].children.length) {
const r = this.findParentFolder(arr[i].children, targetId);
if (r === true) {
ResultArr.push(arr[i].name || '-');
return true;
}
}
}
return false;
}
ResultArr.reverse().joint('/')