函数: filterTreeList()
ts
function filterTreeList<T>(
data,
val,
name,
children?): T[];定义于: tree.ts:175
树形数据精确过滤:逐层保留 name 字段严格等于 val 的节点,子级同样递归过滤。
类型参数
| 类型参数 | 默认类型 |
|---|---|
T | any |
参数
| 参数 | 类型 | 描述 |
|---|---|---|
data | T[] | 全部数据 |
val | T[keyof T] | 用于精确匹配的目标值(需与节点的 name 字段严格相等 ===) |
name | keyof T | 参与匹配的键名 |
children | keyof 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 }] }]