js/es6 树形结构遍历找父级id

发布于 2022-09-13 00:35:32 字数 810 浏览 13 评论 0

数据结构↓

const data = [{
          id: '1',
          children: [{
            id: '2',
            pid: '1',
            authority: [{
              id: '3',
              pid: '2'
            }]
          }]
        }]

这时候有一个data里id合集的数组↓

const result = ['1', '3', '4', '5', '6']

通过这个数组去遍历data的每一层,包括每层的children和authority。
可以看到这个数组里面的‘3’,data里面id为‘3’的pid为‘2’,也就是这条id为‘3’的数据满足条件,能查找到对应的pid,但是pid却不在result里,所以把‘2’push到这个result里面

理想结果↓

const result = ['1', '2','3', '4', '5', '6']

如果我描述的不清晰,大神们可以理解为这样的一个树形控件,我勾选了会有勾选的数组id。但比如我选了第三级就选一个,这样就不会带第二级的id了,除非第三级全选才能返回第二级的id,现在的问题就是我第三级就勾选了一个的话,也要有第二级的id,包括勾选第二级也是。数据格式如上展示

请教大家我该怎么写

在这里先感谢各位大神们的解答,小弟感激不尽!!

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

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

发布评论

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

评论(2

じее 2022-09-20 00:35:32

如果没有理解错楼主的意思的话,感觉应该是跟 AntD 中的 TreeSelect 类似的场景的,它底层使用的搜索算法实现可以见这里conductCheck,它的输入是实体关系结构,输出是选中的 keys 和半选中的 keys,希望对楼主有所启发。

image.png

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