可以通過遍歷整個樹形結構來獲取某一節點的父節點,具體實現方式如下:
function findParentNode(node, target) {
if (node.children) {
for (let i = 0; i < node.children.length; i++) {
if (node.children[i] === target) {
return node;
} else {
const parentNode = findParentNode(node.children[i], target);
if (parentNode) {
return parentNode;
}
}
}
}
}
// 示例數據
const treeData = {
value: 1,
children: [
{
value: 2,
children: [
{
value: 3,
children: []
}
]
},
{
value: 4,
children: []
}
]
}
// 獲取節點3的父節點
const targetNode = treeData.children[0].children[0];
const parentNode = findParentNode(treeData, targetNode);
console.log(parentNode); // 輸出節點2
上述代碼中,findParentNode
函數遞歸遍歷整個樹形結構,查找是否有與目標節點相等的子節點,如果找到了,就返回父節點;如果沒有找到,則遞歸查找該節點的子節點,直到找到為止。在實際應用中,可以根據需求對該代碼進行優化和改進。