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
}

如:菜单

相关推荐
不爱学英文的码字机器27 分钟前
重塑 Web 性能:用 Rust 与 WASM 构建“零开销”图像处理器
前端·rust·wasm
浩星35 分钟前
react的框架UmiJs(五米)
前端·javascript·react.js
子醉3 小时前
推荐一种适合前端开发使用的解决本地跨域问题的办法
前端
Niyy_3 小时前
前端一个工程构建多个项目,记录一次工程搭建
前端·javascript
xiangxiongfly9154 小时前
CSS link标签
前端·css
快乐非自愿4 小时前
常用设计模式:工厂方法模式
javascript·设计模式·工厂方法模式
岁月宁静5 小时前
AI 多模态全栈应用项目描述
前端·vue.js·node.js
十年磨一剑~5 小时前
html+js开发一个测试工具
javascript·css·html
nn_(nana)5 小时前
修改文件权限--- chmod ,vi/vim,查看文件内容,yum-软件包管理器,systemctl管理系统服务
前端