// 查找一个节点的所有父节点(一棵树)
// result:要查询的节点,treeData:json树形数据 checkedKeysAll:找到数组集合
function relationParent(result: any, treeAData: any, checkedKeysAll: any) {
const findParent = (childNode: any, treeData: any) => {
for (let i = 0; i < treeData.length; i++) {
// 父节点查询条件
if (treeData[i].value === childNode.pId) {
// 数组去重 父节点会多次插入
const repeat = checkedKeysAll?.checked.indexOf(treeData[i].value);
if (repeat < 0) {
// 如果找到结果,保存当前节点
checkedKeysAll?.checked.push(treeData[i].value);
}
// 用当前节点再去原数据查找当前节点的父节点
findParent(treeData[i], treeAData);
break;
} else {
if (treeData[i].children instanceof Object) {
// 没找到,遍历该节点的子节点
findParent(childNode, treeData[i].children);
}
}
}
};
findParent(result, treeAData);
}

这段代码实现了一个名为`relationParent`的函数,用于在JSON树形数据中查找指定节点的所有父节点。它通过递归遍历树结构,将找到的父节点值存入`checkedKeysAll.checked`数组中,确保结果不重复。当找到目标节点时,会继续查找其父节点,直到遍历到根节点。这个功能在数据检索和层级结构操作中非常有用。
1662

被折叠的 条评论
为什么被折叠?



