JS----前端将列表数据转树型数据

前端将列表数据转树型数据

场景:后端返回列表数据,由前端根据业务需求完成树型数据转换,

常用于侧边导航菜单,下拉树型数据项等

js 复制代码
export function listToTree(data: []) {
	var map: any = {},
		tree: any = []

	data.forEach((item: any) => {
		delete item?.children
		delete item?.params

		if (!item.label) {
			item.label = item?.name ?? item?.title
		}
		if (!item.value) {
			item.value = item?.id
		}

		map[item?.id] = item
	})

	/**
	 * 以原数据量循环拼装父,子级
	 */
	data.forEach((item: any) => {
		var parent = map[item?.pid]
		if (parent) {
			(parent.children || (parent.children = [])).push(item)
		} else {
			tree.push(item)
		}
	})

	return tree
}

如:菜单

相关推荐
故厶15 小时前
webpack实战
前端·javascript·webpack
_果果然15 小时前
你真的懂递归吗?没那么复杂,但也没那么简单
前端·javascript
菜泡泡@16 小时前
仓库地图vue-grid-layout
前端·javascript·vue.js
u***u68518 小时前
React环境
前端·react.js·前端框架
X***E46318 小时前
前端数据分析应用
前端·数据挖掘·数据分析
4***149018 小时前
React社区
前端·react.js·前端框架
LFly_ice18 小时前
学习React-24-路由传参
前端·学习·react.js
Lhuu(重开版19 小时前
CSS:动效布局动画
前端·css
Q***K5519 小时前
前端构建工具
前端
laocooon52385788619 小时前
创建了一个带悬停效果的“我的个人主页“按钮
前端