将扁平数据转换为tree型数据

Posted sunny0120

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将扁平数据转换为tree型数据相关的知识,希望对你有一定的参考价值。

<script type="text/javascript">
			var meun_list = [
				{
					id:‘1‘,
					meun_name:‘设置‘,
					meun_url:‘‘,
					parent_id:0
				},
				{
					id:‘1-1‘,
					meun_name:‘权限设置‘,
					meun_url:‘‘,
					parent_id:‘1‘
				},
				{
					id:‘1-1-1‘,
					meun_name:‘用户管理列表‘,
					meun_url:‘‘,
					parent_id:‘1-1‘
				},
				{
					id:‘1-1-2‘,
					meun_name:‘用户管理新增‘,
					meun_url:‘‘,
					parent_id:‘1-1‘
				},
				{
					id:‘1-1-3‘,
					meun_name:‘角色管理列表‘,
					meun_url:‘‘,
					parent_id:‘1-1‘
				},
				{
					id:‘1-2‘,
					meun_name:‘菜单设置‘,
					meun_url:‘‘,
					parent_id:‘1‘
				},
				{
					id:‘1-2-1‘,
					meun_name:‘菜单列表‘,
					meun_url:‘‘,
					parent_id:‘1-2‘
				},
				{
					id:‘1-2-1‘,
					meun_name:‘菜单添加‘,
					meun_url:‘‘,
					parent_id:‘1-2‘
				},
				{
					id:‘2‘,
					meun_name:‘订单‘,
					meun_url:‘‘,
					parent_id:0
				},
				{
					id:‘2-1‘,
					meun_name:‘报单审核‘,
					meun_url:‘‘,
					parent_id:‘2‘
				},
				{
					id:‘2-2‘,
					meun_name:‘退款管理‘,
					meun_url:‘‘,
					parent_id:‘2‘
				}
			];
			
			function buildTree(list){
				var temp = {},tree = {};
				for(var i in list){
					temp[list[i].id] = list[i]
				}
				console.log(temp)
				for(var i in temp){
					if(temp[i].parent_id){
						if(!temp[temp[i].parent_id].children){
							temp[temp[i].parent_id].children = new Object();
						}
						temp[temp[i].parent_id].children[temp[i].id] = temp[i]
					}else{
						tree[temp[i].id] = temp[i]
					}
				}
				console.log(tree)
			}
			buildTree(meun_list);
		</script>

以上是关于将扁平数据转换为tree型数据的主要内容,如果未能解决你的问题,请参考以下文章

将扁平的分层数据转换为树状结构的 JSON

JavaScript 扁平与树形数组数据的转换

js 实现将扁平化数据转换为渲染树形结构所需的数据

使用 python 和 pandas 将多数组 json 数据转换为扁平数据框

js把树形数据转成扁平数据

转换分层 DOM 树 XML 文件:XSLT 能否转换为“扁平化”XML 文件而不会丢失数据?