将树形结构的数组对象转换为二维数组可以使用递归和深度优先遍历的方法。以下是一个示例的 JavaScript 代码,展示了如何将树形结构数组对象转换为二维数组:

// 树形结构数组对象
const treeArray = [
  {
    id: 1,
    name: '父节点1',
    children: [
      {
        id: 2,
        name: '子节点1-1',
        children: [
          {
            id: 3,
            name: '子节点1-1-1',
            children: []
          },
          {
            id: 4,
            name: '子节点1-1-2',
            children: []
          }
        ]
      },
      {
        id: 5,
        name: '子节点1-2',
        children: [
          {
            id: 6,
            name: '子节点1-2-1',
            children: []
          }
        ]
      }
    ]
  }
];

// 将树形结构数组对象转换为二维数组
function tree2Array(treeArray) {
  const result = [];

  function flatten(node, level) {
    result.push({
      id: node.id,
      name: node.name,
      level: level
    });

    if (node.children && node.children.length > 0) {
      node.children.forEach(child => {
        flatten(child, level + 1);
      });
    }
  }

  treeArray.forEach(node => {
    flatten(node, 0);
  });

  return result;
}

// 调用函数进行转换
const cArray = tree2Array(treeArray);
console.log(cArray);

treeArray 是一个树形结构的数组对象,包含了节点的 id、name 和 children 属性。

通过 tree2Array 函数,将树形结构的数组对象转换为了二维数组 cArray。转换过程使用了递归和深度优先遍历的方法,将每个节点的信息以对象的形式添加到 result 数组中,其中包含了节点的 id、name 和 level 属性,level 表示节点的深度(从根节点开始计数)。最终,result 数组包含了所有节点的信息,形成了二维数组的结构。


大猛
1.3k 声望66 粉丝

Do I want to do.