在 JavaScript 中,可以使用递归的方式遍历树形结构,将二级节点提取出来放到一级。

下面是一个示例代码:

function flattenTree(tree) {
  let flattenedTree = [];

  function traverse(node) {
    flattenedTree.push(node); // 将当前节点放入结果数组

    if (node.children && node.children.length > 0) {
      node.children.forEach(child => {
        traverse(child); // 递归遍历子节点
      });
    }
  }

  tree.forEach(node => {
    traverse(node); // 遍历树的根节点
  });

  return flattenedTree;
}

// 示例树形结构
let tree = [
  {
    id: 1,
    name: 'Node 1',
    children: [
      { id: 2, name: 'Node 2' },
      {
        id: 3,
        name: 'Node 3',
        children: [
          { id: 4, name: 'Node 4' },
          { id: 5, name: 'Node 5' }
        ]
      }
    ]
  },
  { id: 6, name: 'Node 6' }
];

let flattenedNodes = flattenTree(tree);

console.log(flattenedNodes);

运行上述代码,会输出如下结果:

[
  { id: 1, name: 'Node 1' },
  { id: 2, name: 'Node 2' },
  { id: 3, name: 'Node 3' },
  { id: 4, name: 'Node 4' },
  { id: 5, name: 'Node 5' },
  { id: 6, name: 'Node 6' }
]

这样,二级节点就被提取出来放到了一级。

JavaScript 树形结构:提取二级节点到一级

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

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