先序遍历省市区的树形结构

43 阅读1分钟

废话不多少我们直接上代码!!!

const regionList = [
    		{
    			name: '河南省',
    			regionCode: 100011,
    			children: [
    				{
    					name: '郑州市',
    					regionCode: 100012,
    					children: [
	    					{
	    						name: '二七区',
    							regionCode: 100013,
	    					},
	    					{
	    						name: '郑州新区',
    							regionCode: 100014,
	    					},
    					]
    				},
	    			{
	    				name: '驻马店市',
    					regionCode: 100015,
    					children: [
	    					{
	    						name: '驿城区',
    							regionCode: 100016,
	    					},
	    					{
	    						name: '遂平县',
    							regionCode: 100017,
	    					},
    					]
	    			}
    			]
    		},
    		{
    			name: '广东省',
    			regionCode: 240011,
    			children: [
    				{
    					name: '广州市',
    					regionCode: 240012,
    					children: [
	    					{
	    						name: '花都',
    							regionCode: 240013,
	    					},
	    					{
	    						name: '白云',
    							regionCode: 110014,
	    					},
    					]
    				},
	    			{
	    				name: '深圳市',
    					regionCode: 240015,
    					children: [
	    					{
	    						name: '南山区',
    							regionCode: 240016,
	    					},
	    					{
	    						name: '宝安区',
    							regionCode: 110017,
	    					},
    					]
	    			}
    			]
    		}
    	];

    	function getTreeList(tree, arr, allArr) {
    		tree.forEach((node) => {
				let newArr = [...arr, node.regionCode];
	    		if(node.children) {
					getTreeList(node.children, newArr, allArr);
				}else {
					allArr.push(newArr);
				}
			});
    	}

		let currentArr = [];
		getTreeList(regionList, [], currentArr);
		console.log(currentArr);

实现结果:

image.png