Skip to content

treeSort 树形排序

对树形数组进行排序。

函数定义

typescript
function treeSort<T extends Record<keyof any, any>>(
    tree: T[],
    compareFn?: (a: T, b: T) => number,
    options?: { childrenField?: string }
): T[]

参数

tree Record<keyof any, any>[]

compareFn (a: T, b: T) => number 可选

比较函数

options { childrenField?: string } 可选

配置项,childrenField 为子节点字段

返回值

Record<keyof any, any>[] 完成排序后的树形

例子

ts
import { treeSort } from '@oasis-end/utils'

const treeItemMap = treeMap([
    { name: 'testName2' },
    { name: 'testName1' },
    { name: 'testName3', children: [ { name: 'testName5' }, { name: 'testName4' } ] }
] as TreeItem[], (a, b) => {
    return a.name.localeCompare(b.name)
})
// 结果
// [
//     { name: 'testName1' },
//     { name: 'testName2' },
//     { name: 'testName3', children: [ { name: 'testName4' }, { name: 'testName5' } ] }
// ]

interface TreeItem {
    name: string,
    children?: TreeItem[]
}

Released under the MIT License.