使用递归来将树形结构变为扁平数组。

示例代码:

const flattenTree = (tree) => {
  let result = [];
  if (!tree) {
    return result;
  }
  const flatten = (node) => {
    result.push(node);
    if (node.children) {
      node.children.forEach(flatten);
    }
  };
  flatten(tree);
  return result;
};

假设树形结构如下:

const tree = {
  id: 1,
  label: 'Node 1',
  children: [
    {
      id: 2,
      label: 'Node 2',
      children: [
        {
          id: 3,
          label: 'Node 3',
        },
        {
          id: 4,
          label: 'Node 4',
        },
      ],
    },
    {
      id: 5,
      label: 'Node 5',
      children: [
        {
          id: 6,
          label: 'Node 6',
        },
      ],
    },
  ],
};

调用 flattenTree(tree) 会返回以下扁平数组:

[
  { id: 1, label: 'Node 1' },
  { id: 2, label: 'Node 2' },
  { id: 3, label: 'Node 3' },
  { id: 4, label: 'Node 4' },
  { id: 5, label: 'Node 5' },
  { id: 6, label: 'Node 6' },
]
``
es6 将树形结构变为扁平数组

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

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