ES6 递归生成树形结构并遍历: 0.children.0, 0.children.0.children.0
使用 ES6 递归生成树形结构并遍历
本示例演示如何使用 ES6 递归函数生成树形结构,并使用遍历函数输出路径和节点信息。
生成树形结构:
function generateTree(depth) {
if (depth === 0) {
return null;
}
const node = {
'children': []
};
for (let i = 0; i < depth; i++) {
const child = generateTree(depth - 1);
node.children.push(child);
}
return node;
}
const tree = generateTree(3);
遍历树形结构:
function traverseTree(node, path = '0') {
console.log(path, node);
if (!node.children) {
return;
}
node.children.forEach((child, index) => {
const childPath = `${path}.children.${index}`;
traverseTree(child, childPath);
});
}
traverseTree(tree); // 输出:0, node 0.children.0, node 0.children.0.children.0, node
输出结果:
0 { children: [] }
'0.children.0' { children: [] }
'0.children.0.children.0' { children: [] }
'0.children.1' { children: [] }
'0.children.1.children.0' { children: [] }
'0.children.1.children.1' { children: [] }
'0.children.2' { children: [] }
'0.children.2.children.0' { children: [] }
'0.children.2.children.1' { children: [] }
'0.children.2.children.2' { children: [] }
代码说明:
generateTree(depth)函数使用递归生成树形结构,其中depth参数表示树的深度。traverseTree(node, path)函数遍历树形结构,并输出路径和节点信息。
使用方法:
- 使用
generateTree(depth)函数生成树形结构。 - 使用
traverseTree(node, path)函数遍历树形结构并输出结果。
原文地址: https://www.cveoy.top/t/topic/oPfj 著作权归作者所有。请勿转载和采集!