Skip to content

函数: filterTreeList()

ts
function filterTreeList<T>(
   data, 
   val, 
   name, 
   children?): T[];

定义于: tree.ts:175

树形数据精确过滤:逐层保留 name 字段严格等于 val 的节点,子级同样递归过滤。

类型参数

类型参数默认类型
Tany

参数

参数类型描述
dataT[]全部数据
valT[keyof T]用于精确匹配的目标值(需与节点的 name 字段严格相等 ===
namekeyof T参与匹配的键名
childrenkeyof T子级集合的键名,默认 'children'

返回值

T[]

过滤后的新树形数组

备注

精确匹配(===);若需要「关键字模糊包含」请改用 searchTreeList

非原地操作:内部先经 deepClone 深拷贝再处理,不会改动传入的原始数据。

示例

ts
const list = [
  {
    name: 'option1', id: 1, is_hidden: true,
    children: [
      { name: 'option1.1', id: 3, is_hidden: true },
      { name: 'option1.2', id: 5, is_hidden: false },
    ],
  },
  {
    name: 'option2', id: 2, is_hidden: false,
    children: [
      { name: 'option2.1', id: 4, is_hidden: false },
    ],
  },
]

filterTreeList(list, true, 'is_hidden', 'children')
// => [{ name: 'option1', id: 1, is_hidden: true, children: [{ name: 'option1.1', id: 3, is_hidden: true }] }]