对多维数组对象拍扁并加上父子关系

发布于 2022-09-13 00:19:03 字数 131 浏览 20 评论 0

在使用vue时候,组件可以无限循环的这样子很容易根据数组对象生成嵌套list,但是修改就很头痛了,所以有了以下设想,拍扁同时还有父子元素关系,用于还原操作

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

活泼老夫 2022-09-20 00:19:03

vue中修改是没有问题的 你可能有地方理解错了

转化的算法 深度优先

function dfs (node, res, fatherKey = null) {
  if (!node) return
  node.forEach(item => {
    const key = res.length + 1000
    res.push({
      name: item.name,
      tag: item.tag,
      key,
      father: fatherKey
    })
    dfs(item.node, res, key)
  })
}

function transform (list) {
  const res = []
  dfs(list, res)
  return res
}
泪意 2022-09-20 00:19:03

对于你这个问题,实质是树转数组,在算法上有多个策略,比如广度优先遍历(先进先出、后进先出 等等)、深度优先遍历。
只是你的树中节点对象先还没有key,需要临时添加。而且你这个还是预设key起点(根节点key)

可以参考 https://blog.csdn.net/susuzhe...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文