Skip to content

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' }] }],
//   },
// ]