js two-dimensional array generates a tree structure, and the next level is stacked to the previous level

let data = [
		[{
			label: "春上衣",
			value: "A1",
			child: []
		}, {
			label: "春裤子",
			value: "A2",
			child: []
		}, {
			label: "夏上衣",
			value: "A3",
			child: []
		}, ],
		[{
			label: "XS",
			value: "B1",
			child: []
		}, {
			label: "S",
			value: "B2",
			child: []
		}, {
			label: "M",
			value: "B3",
			child: []
		}, ],
		[{
			label: "120",
			value: "C1",
			child: []
		}, {
			label: "130",
			value: "C2",
			child: []
		}, {
			label: "140",
			value: "C3",
			child: []
		}, ],
		[{
			label: "红",
			value: "D1",
			child: []
		}, {
			label: "黄",
			value: "D2",
			child: []
		}, {
			label: "蓝",
			value: "D3",
			child: []
		}, ],
		[{
			label: "2021",
			value: "E1",
			child: []
		}, {
			label: "2022",
			value: "E2",
			child: []
		}, {
			label: "2023",
			value: "E3",
			child: []
		}, ]
	]

	function toTree(data) {
		let len = data.length - 1;
		for (let i = 0; i < len; i++) {
		 childrenDeal(data, len - i)
		}
		return data[0];
	}

	function childrenDeal(data, len) {
		data[len - 1].map(el => {
			data[len].map(el2 => {
				el.child.push(el2)
			})
		})


	}
	console.log(toTree(data))

Guess you like

Origin blog.csdn.net/wgb0409/article/details/124000219