为了账号安全,请及时绑定邮箱和手机立即绑定

小白,请教各位大佬!数据格式处理:在指定一个子类的情况下去寻找所有父类,将类listjson转换为类树的json数据求老司机指点!

小白,请教各位大佬!数据格式处理:在指定一个子类的情况下去寻找所有父类,将类listjson转换为类树的json数据求老司机指点!

一只斗牛犬 2019-09-19 12:22:20
1.原始数据:数据结构为一个二维表list存的树:[json1,json2...]json的格式为:{id,name,...deptPreId(树节点)}原始数据例子:[{"id":1,"deptName":"B","deptFullname":"A_B","deptLevel":2,"deptPreId":2,},{"id":2,"deptName":"A","deptFullname":null,"deptLevel":1,"deptPreId":null,},{"id":3,"deptName":"C","deptFullname":null,"deptLevel":3,"deptPreId":1,},{"id":4,"deptName":"wwxxX","deptFullname":null,"deptLevel":null,"deptPreId":1},{"id":5,"deptName":"123124124","deptFullname":null,"deptLevel"2,"deptPreId":1}];2.目标数据:将其转换为下面目标数据,也是一个类似的树,有树形层次:其中如果指定child的list的话如何找到其父和组,并生成相应的树。数据格式如下:list:[json1,json2]json:{json,childList}Childlist:[json1,json2]目标数据例子:data=[{"id":2,"deptName":"A","deptFullname":null,"deptLevel":1,"deptPreId":null,Child:[{"id":1,"deptName":"B","deptFullname":"A_B","deptLevel":2,"deptPreId":2,Child:[{"id":3,"deptName":"C","deptFullname":null,"deptLevel":3,"deptPreId":1,}]},{"id":5,"deptName":"123124124","deptFullname":null,"deptLevel"2,"deptPreId":1}]}]通过子类去寻找父类会涉及到父类合并的问题,比如树形结构:A1->B1->C1,A1->B1->C2,A1->B1->C2->D2,比如我现在要通过list,[D2,C1]去寻找D2,所有的祖辈,当回溯到B1的时候要进行合并,但是C2和D2第几次循环查到C2,D2是不确定的。所以和参考代码给出的解决方法有所区分类似问题:通过父类去寻找子类:https://segmentfault.com/q/10...
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

很不明白为什么那么多前端同学都不会这个操作啊。。。遍历两次解决第一次遍历,收录所有json到一个对象中,id作为键,建立id到json的映射。第二次遍历,给所有节点找爹。
可以看我文章,文末有几乎完全一样(除了键名略微不同)的函数。
如有帮助请给个赞,如有疑惑请追问~
                            
查看完整回答
反对 回复 2019-09-19
?
白板的微信

TA贡献1883条经验 获得超3个赞

找到思路了。1.用每一个子去追溯,然后将数组存入一个SET2.最后利用SET将其去重3.然后利用从父辈进行构建子树:即参考文档给出的链接处理
这也只能说间接达到了效果,实际上并不是从子集完成追溯,如果有更好的方法还请回答一下。
                            
查看完整回答
反对 回复 2019-09-19
  • 2 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信