当遇到了好多扁平数据我们都无从下手?不知道如何处理?
家人们 无脑调用这个函数就好了
接口请求回来以后
调用这个函数传入实参就可以用啦~
// 树形菜单函数 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的对象上的children if (!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; }
输出效果: