js数组递归--------生成tree树形菜单

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>数组递归</title>
		<style>
			ul>li {
				list-style: none;
				padding-top: 10px;
			}
		</style>
	</head>
	<body>
		<ul id="ulDom1">
		</ul>
		<ul id="ulDom2">
		</ul>
	</body>
</html>
<script>
	var arr1 = [
		{text: "1",list: [
			{text: "1-1",list: []},
			{text: "1-2",list: []}
		],},
		{text: "2",list: [
			{text: "2-1",list: []},
			{text: "2-2",list: [
				{text: "2-2-1",list: []},
				{text: "2-2-2",list: [
					{text:"2-2-2-1",list:[]},
					{text:"2-2-2-2",list:[]},
					{text:"2-2-2-3",list:[]}
				]}
			]},
		]},
		{text: "3",list: []},
		{text: "4",list: [
			{text: "4-1",list: []},
			{text: "4-2",list: []}
		]}
	];
	
	var arr2 = [
		{supId:"1",id:"1",text:"一级"},
		{supId:"2",id:"2",text:"一级"},
		{supId:"1",id:"11",text:"二级"},
		{supId:"1",id:"12",text:"二级"},
		{supId:"1",id:"13",text:"二级"},
		{supId:"13",id:"131",text:"三级"},
		{supId:"13",id:"132",text:"三级"},
		{supId:"2",id:"21",text:"二级"},
		{supId:"2",id:"22",text:"二级"},
		{supId:"131",id:"1311",text:"四级"},
		{supId:"3",id:"3",text:"一级"},
	];
	
	window.onload = function() {
		var str = "";
		for (var i = 0; i < arr1.length; i++) {
			console.log(arr1[i].text);
			str += "<li><span>" + arr1[i].text + "</span>";
			if (arr1[i].list && arr1[i].list.length != 0) {
				str += recursion1(arr1[i].list);
			}
			str += "</li>";
		}
		document.getElementById("ulDom1").innerHTML = str;

		str = "";
		for (var i = 0; i < arr2.length; i++) {
			if (arr2[i].supId == arr2[i].id) {
				console.log(arr2[i]);
				str += "<li><span>supId = " + arr2[i].supId + "------id = " + arr2[i].id + "------text = " + arr2[i].text +
					"</span>";
				str += recursion2(arr2[i].id);
				str += "</li>";
			}
		}
		document.getElementById("ulDom2").innerHTML = str;
	}

	function recursion1(list) {
		var str = "<ul>";
		for (var i = 0; i < list.length; i++) {
			console.log(list[i].text);
			str += "<li><span>" + list[i].text + "</span>";
			if (list[i].list && list[i].list.length != 0) {
				str += recursion1(list[i].list);
			}
			str += "</li>";
		}
		return str + "</ul>";
	}

	function recursion2(id) {
		var str = "<ul>"
		for (var i = 0; i < arr2.length; i++) {
			if (arr2[i].supId == id && arr2[i].supId != arr2[i].id) {
				console.log(arr2[i]);
				str += "<li><span>supId = " + arr2[i].supId + "------id = " + arr2[i].id + "------text = " + arr2[i].text +
					"</span>";
				str += recursion2(arr2[i].id);
				str += "</li>";
			}
		}
		return str == "<ul>" ? "" : str + "</ul>";
	}
</script>

效果图
效果图


版权声明:本文为weixin_44637298原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。