当遇到了好多扁平数据我们都无从下手?不知道如何处理?
家人们 无脑调用这个函数就好了
接口请求回来以后
调用这个函数传入实参就可以用啦~
// 树形菜单函数
function GetTreeData(data) {let TreeData = [];let map = new Map(); //存在id,对应所在的内存地址// console.log(map);let outputObj, pid;for (let i = 0; i < data.length; i++) {pid = data[i].pid;if (map.has(pid)) {//存在,将些信息,加入到对应id=pid的对象上的childrenif (!map.get(pid).children) map.get(pid).children = [];let obj = new Object(data[i]);map.get(pid).children.push(obj);map.set(data[i].id, obj);// console.log(map);} else if (!map.has(pid) && pid == 0) {//这里处理pid不存在,且pid 为0的处理,pid不存在,且不为0的,程序不考虑这种情况outputObj = new Object(data[i]);TreeData.push(outputObj);map.set(data[i].id, outputObj);// console.log(map);}}return TreeData;
}
输出效果: