updateThroughData(treelikeData, targetKey, iteratee, [options])
说明
根据targetKey,修改该节点的所有途经父节点,默认不修改自身,添加includeSelf可以修改自身
如果没找到 targetKey, 不会有修改的操作,返回的是原数据
参数
treelikeData(Array): 树形数据
targetKey(String): 目标节点的 key
iteratee(Function): 迭代函数
[options](Object): 配置项
[options.childrenKeyName='children'](String): 子数据的 key,默认为'children'
[options.KeyName='key'](String): 数据中唯一标识字段,默认为'key'
[options.includeSelf=false]
返回值
treelikeData(Array): 树形数据
使用
js
const treeData = [
{ key: '1', children: [{ key: '1-1', children: [{ key: '1-1-1' }] }] },
]
const newTreeData1 = updateThroughData(treeData, '1-1-1', item => {
return {
...item,
title: item.key,
}
})
// [
// {
// key: '1',
// title: '1',
// children: [{ key: '1-1', title: '1-1', children: [{ key: '1-1-1' }] }],
// },
// ]
const newTreeData2 = updateThroughData(treeData, '1-1-1', item => {
return {
...item,
title: item.key,
}
}, { includeSelf: true })
// [
// {
// key: '1',
// title: '1',
// children: [{ key: '1-1', title: '1-1', children: [{ key: '1-1-1', title: '1-1-1' }] }],
// },
// ]