如何处理这样的数组?

发布于 2022-09-12 02:21:06 字数 742 浏览 21 评论 0

var arr = [
  {
    url: '/1',
    id: 1,
    isLeaf: false,
    children: [
      {
        url: '2',
        id: 2,
        isLeaf: false,
        children: [
          {
            url: '3',
            id: 3,
            isLeaf: true
          }
        ]
      }
    ]
  },
  {
    url: '/4',
    id: 4,
    isLeaf: false,
    children: [
      {
        url: '5',
        id: 5,
        isLeaf: false,
        children: [
          {
            url: '6',
            id: 6,
            isLeaf: false
          }
        ]
      }
    ]
  }
]

输出:

[
  {
    path: '/1/2',
    id: 2
  },
  {
    path: '/4/5/6',
    id: 6
  }
]

说明:
父子的url拼接,去最后一级的id(isLeaf为true时取上一层的值)

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

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

发布评论

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

评论(1

吃兔兔 2022-09-19 02:21:06

递归遍历+条件判断。
大致思路就是,遍历arr,把每个节点作为node对象,判断它的isLeaf是否为true,拼接url、获取id,并递归遍历该节点的children,至于具体怎么遍历,怎么写判断条件,自己去搜吧。

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