Skip to content

buildTree

递归建树

示例

js
const output = buildTree(input, { parentId: '0', idKey: 'id', parentIdKey: 'parentId' })
js
// input:
[
  { 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' }
];

// output:
[
  {
    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' }
        ]
      }
    ]
  }
]

参数

名称说明类型可选值默认值
list需要建树的数据Array--
options参数配置BuildTreeOptions--

BuildTreeOptions

名称说明类型可选值默认值
parentId顶级节点 id 值string | number-"0"
idKey节点 id 名string-"id"
parentIdKey父节点 id 名string-"parentId"

返回值

(Array): 返回树结构数据