提供一系列对树状数组进行深度遍历操作的方法。
export type DeepFilter = (
// 遍历前的树状列表
list: TreeNode[],
// 遍历回调方法
callback: (item: TreeNode, parent?: TreeNode) => boolean,
// 子项字段名,默认 `children`
children?: string,
// 父节点对象,一般不需要外部传入
parent?: TreeNode
) => TreeNode[]; // 遍历后的树状列表
export type DeepSome = (
// 遍历前的树状列表
list: TreeNode[],
// 遍历回调方法
callback: (item: TreeNode, parent?: TreeNode) => boolean,
// 子项字段名,默认 `children`
children?: string,
// 父节点对象,一般不需要外部传入
parent?: TreeNode
) => boolean; // 是否满足
export type DeepEvery = (
// 遍历前的树状列表
list: TreeNode[],
// 遍历回调方法
callback: (item: TreeNode, parent?: TreeNode) => boolean,
// 子项字段名,默认 `children`
children?: string,
// 父节点对象,一般不需要外部传入
parent?: TreeNode
) => boolean; // 是否满足
export type DeepFind = (
// 遍历前的树状列表
list: TreeNode[],
// 遍历回调方法
callback: (item: TreeNode, parent?: TreeNode) => boolean,
// 子项字段名,默认 `children`
children?: string,
// 父节点对象,一般不需要外部传入
parent?: TreeNode
) => TreeNode | undefined; // 匹配项
export type DeepEach = (
// 遍历前的树状列表
list: TreeNode[],
// 遍历回调方法
callback: (item: TreeNode, parent?: TreeNode) => void,
// 子项字段名,默认 `children`
children?: string,
// 父节点对象,一般不需要外部传入
parent?: TreeNode
) => void; // undefined
export type DeepMap = (
// 遍历前的树状列表
list: TreeNode[],
// 遍历回调方法
callback: (item: TreeNode, parent?: TreeNode) => TreeNode,
// 子项字段名,默认 `children`
children?: string,
// 父节点对象,一般不需要外部传入
parent?: TreeNode
) => TreeNode[]; // 遍历后的树状列表
export type TreeNode = {
[key: string]: any;
// 子节点字段名由 children 参数决定
};