zoukankan      html  css  js  c++  java
  • js把json数据转化成树形数据

    /*转化函数*/
    function(data, attributes) {
    	let resData = data;
    	let tree = [];
    	for(let i = 0; i < resData.length; i++) {
    		if(resData[i][attributes.parentId] === attributes.rootId) {
    			let obj = {
    				id: resData[i][attributes.id],
    				title: resData[i][attributes.name],
    				children: []
    			};
    			tree.push(obj);
    			resData.splice(i, 1);
    			i--;
    		}
    	}
    	run(tree);
    
    	function run(chiArr) {
    		if(resData.length !== 0) {
    			for(let i = 0; i < chiArr.length; i++) {
    				for(let j = 0; j < resData.length; j++) {
    					if(chiArr[i].id == resData[j][attributes.parentId]) {
    						let obj = {
    							id: resData[j][attributes.id],
    							title: resData[j][attributes.name],
    							children: []
    						};
    						chiArr[i].children.push(obj);
    						resData.splice(j, 1);
    						j--;
    					}
    				}
    				run(chiArr[i].children);
    			}
    		}
    	}
    
    	return tree;
    
    }
    var data=[{id:1,parentId:0,name:"测试1"},
    {id:2,parentId:1,name:"测试2"}]

    let attributes = { //定义数据属性名称 id: 'id', parentId: 'parentId', name: 'groupName',
    rootId: 0 }
    /*调用*/
    formatTreeData(data,attributes);

      

      

  • 相关阅读:
    C
    B
    A
    poj1222
    请求转发和重定向
    中文乱码
    Servlet 第一天
    Oracle 锁
    Oracle 包的学习
    初学Linux
  • 原文地址:https://www.cnblogs.com/wangyunhui/p/8981785.html
Copyright © 2011-2022 走看看