<script>
function listToTree(list) {
let info = list.reduce(
(map, node)=> ((map[node._id] = node), (node.children = []), map) ,
{}
);
return list.filter((node) => {
info[node.pid] && info[node.pid].children.push(node);
return !node.pid;
})
};
const list = [
{
pid:"",
targetReplayContent: "good",
currentReplayContent: "good+good",
_id: "12"
},
{
pid:"12",
targetReplayContent: "god",
currentReplayContent: "god+god",
_id: "123"
},
{
pid:"",
targetReplayContent: "bad",
currentReplayContent: "bad+bad",
_id: "34"
},
{
pid:"12",
targetReplayContent: "gd",
currentReplayContent: "gd+gd",
_id: "124"
},
{
pid:"124",
targetReplayContent: "g",
currentReplayContent: "g+g",
_id: "1245"
},
]
listToTree(list);
</script>
处理树形数据
最新推荐文章于 2023-06-19 14:50:29 发布
这段代码展示了如何将一个包含pid和_id的对象列表转换为树形结构。它遍历列表,通过pid将子节点添加到对应的父节点的children数组中,最后返回没有父节点的根节点作为树的顶层。
1万+

被折叠的 条评论
为什么被折叠?



