js 递归id,pid计算累加
时间: 2024-11-03 14:18:52 浏览: 9
JavaScript采用递归算法计算阶乘实例
在JavaScript中,递归ID和PID累加通常是在处理数据结构,比如树形结构(如用户、部门等有父子关系的数据),需要计算每个节点的总层级深度(PID,即父节点ID)以及自身的完整路径ID(通常是通过递归函数来完成)。这里有一个简单的例子:
```javascript
function getIds(node, pid = 0) {
let ids = [];
ids.push({ id: node.id, pid: pid }); // 当前节点的ID和PID
if (node.children && node.children.length > 0) { // 如果有子节点
for (let child of node.children) {
ids = ids.concat(getIds(child, node.id)); // 递归获取子节点的ids,更新PID为当前节点的id
}
}
return ids;
}
// 使用示例
const data = { id: 1, children: [{ id: 2, children: [{ id: 4 }, { id: 5 }] }, { id: 3 }] };
const result = getIds(data);
console.log(result); // 输出:[{ id: 1, pid: 0 }, { id: 2, pid: 1 }, { id: 4, pid: 2 }, { id: 5, pid: 2 }, { id: 3, pid: 1 }]
```
在这个`getIds`函数中,我们首先将当前节点的信息添加到结果数组中,然后对每个子节点递归调用该函数,并将当前节点的ID作为新的PID传递下去。最后返回包含所有节点信息的数组。
阅读全文