function listToTree(data){
// 创建一个空数组来存储树形结构
const tree = [];
// 创建一个空对象来将 id 映射到节点
const map = {};
// 将数据映射到以 id 为键的对象中
data.forEach((item) => {
// 创建一个带有 children 数组的新节点
map[item.id] = { ...item, children: [] };
});
// 再次遍历数据以构建树形结构
data.forEach((item) => {
const parent = map[item.parentId];
if (parent) {
// 如果父节点存在,则将当前节点添加到其 children 数组中
parent.children.push(map[item.id]);
} else {
// 如果父节点不存在,则将当前节点直接添加到树数组中
tree.push(map[item.id]);
}
});
return tree;
};
平级数据转换树形数据 性能plus版
于 2023-11-07 16:36:53 首次发布