使用 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) 函数遍历树形结构,并输出路径和节点信息。

使用方法:

  1. 使用 generateTree(depth) 函数生成树形结构。
  2. 使用 traverseTree(node, path) 函数遍历树形结构并输出结果。
ES6 递归生成树形结构并遍历: 0.children.0, 0.children.0.children.0

原文地址: https://www.cveoy.top/t/topic/oPfj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录