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
}

如:菜单

相关推荐
雨中深巷的油纸伞8 小时前
vue 项目部署到iis后 浏览器刷新404
前端·javascript·vue.js
谢尔登8 小时前
从源码视角来看Pinia!
前端·javascript·vue.js
梦6508 小时前
JavaScript 循环
开发语言·javascript·ecmascript
运筹vivo@9 小时前
攻防世界: mfw
前端·web安全·php
沛沛老爹9 小时前
从Web到AI:行业专属Agent Skills生态系统技术演进实战
java·开发语言·前端·vue.js·人工智能·rag·企业转型
GGGG寄了10 小时前
HTML——列表标签
前端·html5
HWL567910 小时前
显示器缩放和更改分辨率的区别
前端·css·vue.js·计算机外设·html5
jzshmyt10 小时前
曼德勃罗集web可视化应用
前端
GGGG寄了10 小时前
HTML——表格的基本用法
前端·html