js JSON数据根据不同类别重组

源数据:

javascript 复制代码
this.deviceTypeMap= 
{
	"113": "G3P国内定位器",
	"114": "铁将军-火星人2300",
	"139": "龙嘉4G-带CAN"
}
this.tmpData=
				[{
					"ibdr_pdid": "113",
					"ibdr_default_device": "10",
					"ibdr_devsn": "1135257499235",
					"ibdr_last_time": "2023-12-13 11:13:34",
					"ibdr_name": "1135257499235"
				}, {
					"ibdr_pdid": "114",
					"ibdr_default_device": "20",
					"ibdr_devsn": "1141553148067",
					"ibdr_last_time": "2023-12-13 11:13:31",
					"ibdr_name": "1141553148067"
				}, {
					"ibdr_pdid": "139",
					"ibdr_default_device": "20",
					"ibdr_devsn": "1394343434349",
					"ibdr_last_time": "2023-12-13 11:13:27",
					"ibdr_name": "1394343434349"
				}, {
					"ibdr_pdid": "113",
					"ibdr_default_device": "20",
					"ibdr_devsn": "1135257511548",
					"ibdr_last_time": "2023-12-13 11:13:34",
					"ibdr_name": "1135257511548"
				}, {
					"ibdr_pdid": "114",
					"ibdr_default_device": "20",
					"ibdr_devsn": "1141540433527",
					"ibdr_last_time": "2023-12-13 11:13:31",
					"ibdr_name": "1141540433527"
				}, {
					"ibdr_pdid": "114",
					"ibdr_default_device": "20",
					"ibdr_devsn": "1141528873710",
					"ibdr_last_time": "2023-12-13 11:13:30",
					"ibdr_name": "1141528873710"
				}]

目标数据:

javascript 复制代码
[{
	"title": "113-G3P国内定位器",
	"equipmentList": [{
		"ibdr_pdid": "113",
		"ibdr_default_device": "10",
		"ibdr_devsn": "1135257499235",
		"ibdr_last_time": "2023-12-13 11:13:34",
		"ibdr_name": "1135257499235"
	}, {
		"ibdr_pdid": "113",
		"ibdr_default_device": "20",
		"ibdr_devsn": "1135257511548",
		"ibdr_last_time": "2023-12-13 11:13:34",
		"ibdr_name": "1135257511548"
	}]
}, {
	"title": "114-铁将军-火星人2300",
	"equipmentList": [{
		"ibdr_pdid": "114",
		"ibdr_default_device": "20",
		"ibdr_devsn": "1141553148067",
		"ibdr_last_time": "2023-12-13 11:13:31",
		"ibdr_name": "1141553148067"
	}, {
		"ibdr_pdid": "114",
		"ibdr_default_device": "20",
		"ibdr_devsn": "1141540433527",
		"ibdr_last_time": "2023-12-13 11:13:31",
		"ibdr_name": "1141540433527"
	}, {
		"ibdr_pdid": "114",
		"ibdr_default_device": "20",
		"ibdr_devsn": "1141528873710",
		"ibdr_last_time": "2023-12-13 11:13:30",
		"ibdr_name": "1141528873710"
	}]
}, {
	"title": "139-龙嘉4G-带CAN",
	"equipmentList": [{
		"ibdr_pdid": "139",
		"ibdr_default_device": "20",
		"ibdr_devsn": "1394343434349",
		"ibdr_last_time": "2023-12-13 11:13:27",
		"ibdr_name": "1394343434349"
	}]
}]

格式化数据方法:

javascript 复制代码
格式化数据方法:
setData(data, deviceTypeMap) {
				let pdids = []
				data.forEach(dev => {
					if (!pdids.includes(dev.ibdr_pdid)) {
						pdids.push(dev.ibdr_pdid)
					}
				})
				pdids = pdids.sort() // 按pdid从小到大排序
				const tempDataList = []
				pdids.forEach(pdid => {
					let title = ''
					const name = deviceTypeMap[pdid]
					if (name) {
						title = pdid + '-' + name
					}
					const item = {
						title: title,
						equipmentList: []
					}
					data.forEach(dev => {
						if (pdid === dev.ibdr_pdid) {
							item.equipmentList.push(dev)
						}
					})
					tempDataList.push(item)
				})
				
				this.typeList = tempDataList
				console.log("this.typeList",JSON.stringify(this.typeList))
			},
相关推荐
巴巴_羊14 分钟前
React Ref使用
前端·javascript·react.js
拾光拾趣录35 分钟前
CSS常见问题深度解析与解决方案(第三波)
前端·css
徊忆羽菲42 分钟前
Echarts3D柱状图-圆柱体-文字在柱体上垂直显示的实现方法
javascript·ecmascript·echarts
轻语呢喃1 小时前
JavaScript :字符串模板——优雅编程的基石
前端·javascript·后端
杨进军1 小时前
React 协调器 render 阶段
前端·react.js·前端框架
中微子1 小时前
Blob 对象及 Base64 转换指南
前端
风铃喵游1 小时前
让大模型调用MCP服务变得超级简单
前端·人工智能
中微子1 小时前
智能前端实践之 shot-word demo
前端
归于尽1 小时前
智能前端小魔术,让图片开口说单词
前端·react.js
用户9873824581011 小时前
vite 插件
前端