/**
* 组织数据(把后端传递过来的数组数据组合成符合树形菜单的数据结构)
* @param data:后端数据
* @returns {Array}:组织好的数据结构
*/
function toTreeData(data) {
var pos = {};
var tree = [];
var i = 0;
while (data.length != 0) {
//判定是否是根节点
if (data[i].pid == 0) {
tree.push({
level: data[i].level,
pid: data[i].pid,
id: data[i].id,
title: data[i].title,
items: []
});
pos[data[i].id] = [tree.length - 1];
data.splice(i, 1);
i--;
} else {
var posArr = pos[data[i].pid];
if (posArr != undefined) {
var obj = tree[posArr[0]];
for (var j = 1; j < posArr.length; j++) {
obj = obj.items[posArr[j]];
}
obj.items.push({
level: data[i].level,
pid: data[i].pid,
id: data[i].id,
title: data[i].title,
items: []
});
pos[data[i].id] = posArr.concat([obj.items.length - 1]);
data.splice(i, 1);
i--;
}
}
i++;
if (i > data.length - 1) {
i = 0;
}
};
return tree;
}
接口响应父子结构的数据,前端重构数据结构为树形结构
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 前几天遇到一个树型组件(类似树形菜单)数据格式化的问题,由于后台把原始查询的数据直接返回给前端,父子关系并未构建,...