Skip to content

flatTree

树扁平化

示例

js
const output = flatTree(input, { childrenKey: 'children' })
js
// input:
[
  {
    id: '1',
    parentId: '0',
    children: [
      {
        id: '1-1',
        parentId: '1',
        children: [{ id: '1-1-1', parentId: '1-1' }]
      },
      {
        id: '1-2',
        parentId: '1',
        children: [
          { id: '1-2-1', parentId: '1-2' },
          { id: '1-2-2', parentId: '1-2' }
        ]
      },
      {
        id: '1-3',
        parentId: '1',
        children: [
          { id: '1-3-1', parentId: '1-3' },
          { id: '1-3-2', parentId: '1-3' },
          { id: '1-3-3', parentId: '1-3' }
        ]
      }
    ]
  },
  {
    id: '2',
    parentId: '0',
    children: [
      {
        id: '2-1',
        parentId: '2',
        children: [{ id: '2-1-1', parentId: '2-1' }]
      },
      {
        id: '2-2',
        parentId: '2',
        children: [
          { id: '2-2-1', parentId: '2-2' },
          { id: '2-2-2', parentId: '2-2' }
        ]
      },
      {
        id: '2-3',
        parentId: '2',
        children: [
          { id: '2-3-1', parentId: '2-3' },
          { id: '2-3-2', parentId: '2-3' },
          { id: '2-3-3', parentId: '2-3' }
        ]
      }
    ]
  }
];

// output:
[
  { id: '1', parentId: '0' },
  { id: '1-1', parentId: '1' },
  { id: '1-1-1', parentId: '1-1' },
  { id: '1-2', parentId: '1' },
  { id: '1-2-1', parentId: '1-2' },
  { id: '1-2-2', parentId: '1-2' },
  { id: '1-3', parentId: '1' },
  { id: '1-3-1', parentId: '1-3' },
  { id: '1-3-2', parentId: '1-3' },
  { id: '1-3-3', parentId: '1-3' },
  { id: '2', parentId: '0' },
  { id: '2-1', parentId: '2' },
  { id: '2-1-1', parentId: '2-1' },
  { id: '2-2', parentId: '2' },
  { id: '2-2-1', parentId: '2-2' },
  { id: '2-2-2', parentId: '2-2' },
  { id: '2-3', parentId: '2' },
  { id: '2-3-1', parentId: '2-3' },
  { id: '2-3-2', parentId: '2-3' },
  { id: '2-3-3', parentId: '2-3' }
]

参数

名称说明类型可选值默认值
childrenKey子节点的名string-"children"
depth起始的深度,影响_depth 的值number-0
returnDepth是否返回深度值_depthboolean-false
returnChildren是否返回子节点boolean-false

返回值

(Array): 返回一维数组