js 实现向树结构添加节点

`如下数据: data = [
  {
    id: 1,
 date: '2016-05-02',
 name: '王小虎',
 address: '上海市普陀区金沙江路 1518 弄'
}, {
    id: 2,
 date: '2016-05-04',
 name: '王小虎',
 address: '上海市普陀区金沙江路 1517 弄'
}, {
    id: 3,
 date: '2016-05-01',
 name: '王小虎',
 address: '上海市普陀区金沙江路 1519 弄'
}, {
    id: 4,
 date: '2016-05-03',
 name: '王小虎',
 address: '上海市普陀区金沙江路 1516 弄'
}, {
    id: 5,
 date: '2016-05-03',
 name: '王小虎',
 address: '上海市普陀区金沙江路 1516 弄'
}, {
    id: 6,
 date: '2016-05-03',
 name: '王小虎',
 address: '上海市普陀区金沙江路 1516 弄'
}
]


2. 然后我现在如获取到{
    id: 4,
 date: '2016-05-03',
 name: '王小虎',
 address: '上海市普陀区金沙江路 1516 弄'
}这个row,

那么我就给下面添加个子节点:children[下面是我的数据],再次添加我就push,如果我下次给children里面的元素添加节点,就继续创建children,以此类推
`
阅读 3.8k
2 个回答

问题是不是可以转换为找到树结构中的某个节点?
找到节点后对其children进行操作那应该很简单了吧。

之前写的文章里有树结构找节点的实现:
https://wintc.top/article/20

直接看代码吧,可以使用循环递归来查找

const handleData = (id, data, obj) => {
  data.forEach(item => {
    if (item.id === id) {
      item.children ? item.children.push(obj) : item.children = [obj]
    } else {
      if (item.children) {
        handleData(id, item.children, obj)
      }
    }
  })
  return data
}
const newData = handleData(5, data, {
  id: 7,
  date: '2016-05-03',
  name: '王小虎',
  address: '上海市普陀区金沙江路 1516 弄'
  }
)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题