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
}

如:菜单

相关推荐
yhole3 分钟前
Nginx解决前端跨域问题
运维·前端·nginx
我爱学习好爱好爱4 分钟前
Ansible 常用模块详解:hostname、selinux 、file实战
前端·chrome·ansible
爱丽_4 分钟前
AQS 的 `state`:volatile + CAS 如何撑起原子性与可见性
java·前端·算法
Zik----9 分钟前
Windows安装cuda
前端·ui·xhtml
王杨游戏养站系统9 分钟前
3分钟搭建1个游戏下载站网站教程!SEO站长养站系统!
开发语言·前端·游戏·游戏下载站养站系统·游戏养站系统
是上好佳佳佳呀9 分钟前
【前端(三)】CSS 属性梳理:从字体文本到背景表格
前端·css
gaolei_eit12 分钟前
Vue3信号(Signals)深度解析:重新思考响应式编程的未来
前端
小江的记录本15 分钟前
【端口号】计算机领域常见端口号汇总(完整版)
java·前端·windows·spring boot·后端·sql·spring
Reisentyan17 分钟前
网站开发遇到的一个坑点
前端
网络点点滴18 分钟前
customRef的强大之处
开发语言·前端·javascript