后台接口返回的数据格式:

var data = [
         {sucode1:"1",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
         {sucode1:"1",sucode2:"02",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
         {sucode1:"1",sucode2:"02",sucode3:"002",subName1:"name1",subName2:"name2",subName3:"name3"},
         {sucode1:"2",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
         {sucode1:"3",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},
         {sucode1:"3",sucode2:"02",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"},

js转换树的方法:

function treeData(data){
    var code1 = "-1";
    var code2 = "-1";
    var root1=[];
    var rootData1={};
	var tmp1=-1;
	var tmp2=-1;
    for(var info of data){
        if(code1 != info.sucode1){
            rootData1={title:info.subName1,code:info.sucode1,level:1,children:[{title:info.subName2,code:info.sucode2,level:2,children:[{title:info.subName3,level:3,code:info.sucode3}]}]};
            root1.push(rootData1);
            code1 = info.sucode1;
			code2 = info.sucode2;
			tmp1++;
			tmp2=0;
        }else{
			var children = root1[tmp1].children;
            if(code2 == info.sucode2){
                var children2 = children[tmp2].children;
				children2.push({title:info.subName3,level:3,code:info.sucode3});
				children[tmp2].children = children2;
			}else{
				children.push({title:info.subName2,code:info.sucode2,level:2,children:[{title:info.subName3,level:3,code:info.sucode3}]});
				rootData1.children = children;
				root1[tmp1]=rootData1;
				tmp2++;
            code2 = info.sucode2;
            code1 = info.sucode1;
    return root1;

运行结果:

后台接口返回的数据格式:var data = [ {sucode1:"1",sucode2:"01",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"}, {sucode1:"1",sucode2:"02",sucode3:"001",subName1:"name1",subName2:"name2",subName3:"name3"}, {sucode1:"1",su... 在JS 剑指 Offer 32 - II. 从上到下打印二叉 II的基础上加一个翻转的判断条件即可: * Definition for a binary tree node. * function
平常在使用antd的tree或者elementUI的tree去开发项目的时候,要求向这个组件中传递的数据都是格式化好的,有嵌套层级的数组,这种情况下就需要我们自行封装方法去组装数据结构,具体的代码如下: // 格式数据 function toTreeData(data) { const pos = {} const tree = [] let i = 0 while(data.length != 0) { if(data[i].pid == null) { {id:1,parent:null,text:'菜单1'}, {id:11,parent:1,text:'菜单1-1'}, {id:12,parent:1,text:'菜单1-2'}, {id:2,parent:null,text:'菜单2'}, {id:21,parent:2,text:'菜单2-1'} function .
假如我们拿到的数据格式是这样的:当我们使用element组件库的Tree组件时,我们需要一个形数据才能进行渲染,但是我们从后端拿到的数据可能不是我们需要的数据格式,此时,我们就需要对拿到的数据进行格式转化。 假如我们拿到的数据格式是这样的: //数据格式 const arr = [ { id: '01', name: '张大大', pid: '00', job: '项目经理' }, { id: '02', name: '小亮', pid: '01', job: '产品leader' },
在很多场景下由于区分授权,比如菜单或组织机构等,给当前用户返回的往往可能不是以固定的父id来标识数据的根节点。这种情况下就需要动态的根据当前数组本身自动判断构造。 理论就是根据父id,在数组或中查找,如果在元素中找到对应id,那么就追加为子元素。如果找不到,那当前元素就是定级元素。 * 列表转为,pid值未知。思路:第一遍遍历构造为map,第二遍 * @param {*} list * @returns export function listToTree(list) { {id:"01", name: "张大大", pid:"", job: "项目经理"}, {id:"02", name: "小亮", pid:"01", job: "产品leader"}, {id:"03", name: "小美", pid:"01", job: "UIleader"}, {id:"04", name: "老马", pid:"01", job: "技术leader"},
Object_DaNa: //获取资源文件字体 String path = EnvironmentUtils.getWebClassPath()+"fonts"+ File.separator; 大佬这段代码获取的是哪个资源文件字体? itextpdf 生成PDF ,鼠标悬浮图片显示信息,点击事件 y276128897: 楼主知道为什么运行到 PdfFormField ff = btn.getField(); 会报java.lang.NullPointerException错 我用的jar包是itextpdf 5.5. 富文本编辑器保存的html内容使用itextpdf转PDF文件(css提取,内容重叠)问题解决 wleng: 你好,请问参数传入的css字符串直接是外部css文件里的内容吗 富文本编辑器保存的html内容使用itextpdf转PDF文件(css提取,内容重叠)问题解决 勇气heart 青春微凉love: itextPDF不支持html的所有样式,他所支持的是大部分word的样式。一些特殊的样式需要自己做处理