js方法,处理树类型数据,如何判断 某一个节点的字段code的值,获取其父节点的数据
时间: 2024-11-17 18:29:40 浏览: 21
在JavaScript中,处理树型数据并获取某个节点的父节点数据,通常需要遍历树结构,直到找到目标节点的父节点。这里我们假设树是以对象形式存储,每个节点都有一个`children`数组来表示子节点。以下是一个简单的递归函数实现:
```javascript
function getParentData(node, codeToFind) {
// 遍历当前节点的所有子节点
for (let child of node.children) {
// 如果找到指定 `code` 的子节点,直接返回其父节点数据
if (child.code === codeToFind) {
return node;
} else {
// 否则递归查找子节点的父节点
const parentOfCode = getParentData(child, codeToFind);
if (parentOfCode) {
return parentOfCode;
}
}
}
// 如果未找到匹配的子节点,则返回 null 或 undefined,表示该节点不存在于父节点中
return null;
}
// 使用示例
const tree = {
id: 1,
code: 'parent1',
children: [
{ id: 2, code: 'child1', children: [{ id: 4, code: 'leaf1' }] },
{ id: 3, code: 'child2', children: [{ id: 5, code: 'leaf2' }] },
{ id: 6, code: 'parent2', children: [{ id: 7, code: 'grandChild1' }] }
]
};
const parentOfLeaf1 = getParentData(tree, 'leaf1');
console.log(parentOfLeaf1); // 输出:{ id: 2, code: 'child1' }
阅读全文