logo

JavaScript递归树结构数据查找所有父级

作者:4042024.02.18 10:16浏览量:11

简介:本文将介绍如何使用JavaScript递归函数来查找树形结构数据中的所有父级节点。

在树形结构数据中,有时候我们需要查找某个节点的所有父级节点。这可以通过递归来实现。以下是一个示例代码,展示了如何使用JavaScript递归函数来查找树形结构数据中的所有父级节点:

```javascript
function findAllParents(node, parentId) {
let parents = [];

// 如果当前节点没有父节点,返回空数组
if (node.parentId === null || node.parentId === undefined) {
return parents;
}

// 如果当前节点的父节点ID与目标父节点ID相同,将当前节点加入父节点数组中
if (node.parentId === parentId) {
parents.push(node);
}

// 递归查找当前节点的父节点的父节点
let parent = findNodeById(treeData, node.parentId);
if (parent) {
parents = parents.concat(findAllParents(parent, parentId));
}

return parents;
}

// 示例树形结构数据
let treeData = [
{ id: 1, parentId: null },
{ id: 2, parentId: 1 },
{ id: 3, parentId: 1 },
{ id: 4, parentId: 2 },
{ id: 5, parentId: 2 },
{ id: 6, parentId: 3 },
];

// 查找ID为4的节点的所有父级节点
let parents = findAllParents(findNodeById(treeData, 4), 1);
console.log(parents); // 输出:[ { id: 2, parentId: 1 }, { id: 1, parentId: null } ]

相关文章推荐

发表评论

活动