1 Star 0 Fork 13

wangscript1 / js.tree

forked from 阿森 / js.tree 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
map.md 2.25 KB
一键复制 编辑 原始数据 按行查看 历史
zhengxs 提交于 2021-05-05 14:23 . style: 代码格式化

修改数据

可以使用 map 修改数据

回调函数参数:

  • node - 当前节点对象
  • index - 在同级中的索引
  • parents - 所有上级的节点对象
import { map } from '@zhengxs/js.tree'

const data = [
  {
    title: '财务',
    children: [
      { title: '收入流失', children: [] },
      { title: '财务设置', children: [] }
    ]
  },
  {
    title: '站点设置',
    children: [
      { title: '收入流失', children: [] },
      { title: '财务设置', children: [] }
    ]
  }
]

const result = map(data, (node, index, parents) => {
  if (node.title === '财务') {
    // 可以返回空的子节点,停止处理子级
    // 已经做过浅拷贝,修改不会改变原始对象
    node.children = []
    return node
  }

  // 已经做过浅拷贝,修改不会改变原始对象
  node.title = node.title + '测试'

  // 必须返回内容
  return node
})
// ->
// [
//   {
//     title: '财务',
//     children: []
//   },
//   {
//     title: '站点设置测试',
//     children: [
//       { title: '菜单维护测试', children: [] },
//       { title: '角色维护测试', children: [] }
//     ]
//   }
// ]

默认子级列表的属性名称是 chilren,可以通过第三个参数修改

import { map } from '@zhengxs/js.tree'

const data = [
  {
    title: '财务',
    items: [
      { title: '收入流失', items: [] },
      { title: '财务设置', items: [] }
    ]
  },
  {
    title: '站点设置',
    items: [
      { title: '收入流失', items: [] },
      { title: '财务设置', items: [] }
    ]
  }
]

const result = map(
  data,
  (node, index, parents) => {
    if (node.title === '财务') {
      // 可以返回空的子节点,停止处理子级
      // 已经做过浅拷贝,修改不会改变原始对象
      node.children = []
      return node
    }

    // 已经做过浅拷贝,修改不会改变原始对象
    node.title = node.title + '测试'

    // 必须返回内容
    return node
  },
  'items'
)
// ->
// [
//   {
//     title: '财务',
//     items: []
//   },
//   {
//     title: '站点设置测试',
//     items: [
//       { title: '菜单维护测试', items: [] },
//       { title: '角色维护测试', items: [] }
//     ]
//   }
// ]
TypeScript
1
https://gitee.com/kingsmart/js.tree.git
git@gitee.com:kingsmart/js.tree.git
kingsmart
js.tree
js.tree
main

搜索帮助