Appearance
树结构数组的筛选
需求
树结构数组的筛选
代码
interface ITExtends { children?: [] level? } /** * 树结构筛选, 调用 treeFilter(tree, node => { console.log(node.title) }) * @param tree * @param func 传入一个函数描述符合条件的节点 * @returns */ export const treeFilter = <T>(tree, func): Array<T> => { // 使用 map 复制一下节点,避免修改到原树结构数据 return tree .map((node) => ({ ...node })) .filter((node) => { node.children = node.children && treeFilter(node.children, func) return func(node) || (node.children && node.children.length) }) }