需要转换的数据格式
let objData = [//数据类型格式
{
"name": "104房间",
"prisonId": "1",
"prisonName": "第一区域",
"id": "104",
"personNum": "3",
"prisonRoomTypeName": "普通房间"
},
{
"name": "112房间",
"prisonId": "1",
"prisonName": "第一区域",
"id": "112",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "113房间",
"prisonId": "1",
"prisonName": "第一区域",
"id": "113",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "114房间",
"prisonId": "1",
"prisonName": "第一区域",
"id": "114",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "201房间",
"prisonId": "2",
"prisonName": "第二区域",
"id": "201",
"personNum": "2",
"prisonRoomTypeName": "普通房间"
},
{
"name": "202房间",
"prisonId": "2",
"prisonName": "第二区域",
"id": "202",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "203房间",
"prisonId": "2",
"prisonName": "第二区域",
"id": "203",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "210房间",
"prisonId": "2",
"prisonName": "第二区域",
"id": "210",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "312房间",
"prisonId": "3",
"prisonName": "第三区域",
"id": "312",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "313房间",
"prisonId": "3",
"prisonName": "第三区域",
"id": "313",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "401房间",
"prisonId": "4",
"prisonName": "第四区域",
"id": "401",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "409房间",
"prisonId": "4",
"prisonName": "第四区域",
"id": "409",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "501房间",
"prisonId": "5",
"prisonName": "第五区域",
"id": "501",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "514房间",
"prisonId": "5",
"prisonName": "第五区域",
"id": "514",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "601房间",
"prisonId": "6",
"prisonName": "第六区域",
"id": "601",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "701房间",
"prisonId": "7",
"prisonName": "第七区域",
"id": "701",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "702房间",
"prisonId": "7",
"prisonName": "第七区域",
"id": "702",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "801房间",
"prisonId": "8",
"prisonName": "第八区域",
"id": "801",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "802房间",
"prisonId": "8",
"prisonName": "第八区域",
"id": "802",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "814房间",
"prisonId": "8",
"prisonName": "第八区域",
"id": "814",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "4区特殊房间1",
"prisonId": "4",
"prisonName": "第四区域",
"id": "4009",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "4区特殊房间2",
"prisonId": "4",
"prisonName": "第四区域",
"id": "4010",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "单人房间6001",
"prisonId": "6",
"prisonName": "第六区域",
"id": "6001",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
},
{
"name": "6区特殊房间2",
"prisonId": "6",
"prisonName": "第六区域",
"id": "6010",
"personNum": "0",
"prisonRoomTypeName": "普通房间"
}
]
转换方法
let valData = []
valData = listToTree(objData)
//转换数据为树形数据
function listToTree(dataSource) {
let objOut = [];//晒选出父级菜单类别
let group =[];//存放父级菜单
for (let i of dataSource) {
const pid = i.prisonId;
if (objOut.indexOf(pid) == -1) {
objOut.push(i.prisonId)
group.push({//可自由设置父级菜单样式
id: i.prisonId,
name: i.prisonName,
children:[]
})
}
}
for (let isY of group) {
const resultArr = dataSource.filter((ele) => {
return ele.prisonId == isY.id;
});
isY.children=resultArr
}
return group
}
console.log(valData)