let input: Array<Item> = [
{
id: 1,
val: "学校",
parentId: null
},
{
id: 2,
val: "班级1",
parentId: 1
},
{
id: 3,
val: "班级2",
parentId: 1
},
{
id: 4,
val: "学生1",
parentId: 2
},
{
id: 5,
val: "学生2",
parentId: 2
},
{
id: 6,
val: "学生3",
parentId: 3
},
{
id: 7,
val: "sss",
parentId: 6
},
{
id: 8,
val: "sdss",
parentId: 7
}
];
const handleItem: Array<Item> = [];
const res = input.reduce((prev, item) => {
const i = handleItem.find(({ id }) => id === item.parentId);
if (i) {
i.children = i.children ?? [];
i.children.push(item);
} else {
prev = item;
}
handleItem.push(item);
return prev;
}, {} as Res);
typeScript数组转树。
最新推荐文章于 2024-07-26 20:46:33 发布