js树形结构根据子id获取上一级的父节点名称
时间: 2023-10-29 19:05:54 浏览: 102
javascript将扁平的数据转为树形结构的高效率算法
你可以使用递归来遍历树形结构,查找与给定子ID匹配的父节点。以下是一个示例的JavaScript代码:
```javascript
function findParentNodeName(tree, targetId, parentName = '') {
for (let node of tree) {
if (node.id === targetId) {
return parentName;
}
if (node.children && node.children.length > 0) {
let result = findParentNodeName(node.children, targetId, node.name);
if (result) {
return result;
}
}
}
return null;
}
// 示例树形结构
const tree = [
{
id: 1,
name: 'A',
children: [
{
id: 2,
name: 'B',
children: [
{
id: 3,
name: 'C',
children: []
},
{
id: 4,
name: 'D',
children: []
}
]
},
{
id: 5,
name: 'E',
children: []
}
]
},
{
id: 6,
name: 'F',
children: [
{
id: 7,
name: 'G',
children: []
}
]
}
];
// 调用函数查找父节点名称
const parentId = 3;
const parentName = findParentNodeName(tree, parentId);
console.log(parentName); // 输出 "B"
```
这个代码实现了一个名为 `findParentNodeName` 的递归函数,它接受一个树形结构数组 `tree`、目标子ID `targetId` 和可选的父节点名称 `parentName`。函数会遍历树形结构,查找与目标ID匹配的节点,并返回相应的父节点名称。如果找不到匹配的节点,函数会返回 `null`。
请记得根据你的实际树形结构和需求进行适当的修改。
阅读全文