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

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...
一只斗牛犬
浏览 270回答 2
2回答

FFIVE

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

白板的微信

找到思路了。1.用每一个子去追溯,然后将数组存入一个SET2.最后利用SET将其去重3.然后利用从父辈进行构建子树:即参考文档给出的链接处理这也只能说间接达到了效果,实际上并不是从子集完成追溯,如果有更好的方法还请回答一下。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript