根据条件操作节点
方法使用
js
import { opBySearch } from "yiu-tree"
const tree = [
{ id: 1, children: [
{ id: '1-1', children: [
{ id: '1-1-1' }, { id: '1-1-2' }] },
{ id: '1-2' },
{ id: '1-3' } ],
},
{ id: 2, children: [
{ id: '2-1' }] },
{ id: 3 },
{ id: 4 },
]
const result = opBySearch(
tree,
(node) => node.name = `${node.id}-name`,
(node) => node.id === 2,
)
console.log(`操作后的树 :>> ${result}`)
方法说明
opBySearch(tree, opFunc, scFunc, [opt])
方法默认开启深拷贝。
将符合scFunc
搜索函数的节点处理之后,再返回处理过的树,你可以理解为array.forEach()
中修改item
。
NodeType
:T
opAll<T>
: 泛型支持传入你定义的节点类型tree
:- 类型:
T[]
- 说明: 传入的树数据
- 类型:
opFunc
:- 类型:
(node: T, [nodeInfo: TreeNodeInfo<T>]) => void
- 说明: 操作函数
- 类型:
scFunc
:- 类型:
(node: T, [nodeInfo: TreeNodeInfo<T>]) => boolean
- 说明: 搜索函数
- 类型:
opt
:- 类型:
TreeBaseOpt<T>
- 说明: 树配置
- 类型: