/**
* 组织数据(把后端传递过来的数组数据组合成符合树形菜单的数据结构)
* @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;
}
接口响应父子结构的数据,前端重构数据结构为树形结构
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前几天遇到一个树型组件(类似树形菜单)数据格式化的问题,由于后台把原始查询的数据直接返回给前端,父子关系并未构建,...