今天在写react项目时,需要将后台传过来的6条数据整合显示到antd的table组件上,需要为数据添加例如“2020-11-02”的日期字段,value为staffName,这里记录一下整合过程。
<script>
var arr = [
{
"id": 1,
"staff_shift_id": 1,
"shift_time": "2020-11-08",
"shift_id": 3,
"staff_id": 3,
"bed_id": 2,
"update_time": "2020-11-05T06:38:59.456Z",
"update_user": 1,
"startTime": "20:00:00",
"endTime": "23:00:00",
"staffName": "王五",
"bedNumber": "1-1-2-1",
"shiftName": "晚班"
},
{
"id": 1,
"staff_shift_id": 1,
"shift_time": "2020-11-08",
"shift_id": 3,
"staff_id": 3,
"bed_id": 2,
"update_time": "2020-11-05T06:38:59.456Z",
"update_user": 1,
"startTime": "20:00:00",
"endTime": "23:00:00",
"staffName": "张三",
"bedNumber": "1-1-2-1",
"shiftName": "晚班"
},
{
"id": 7,
"staff_shift_id": 1,
"shift_time": "2020-11-06",
"shift_id": 3,
"staff_id": 3,
"bed_id": 2,
"update_time": "2020-11-05T06:38:59.456Z",
"update_user": 1,
"startTime": "20:00:00",
"endTime": "23:00:00",
"staffName": "王五",
"bedNumber": "1-1-2-1",
"shiftName": "晚班"
},
{
"id": 2,
"staff_shift_id": 1,
"shift_time": "2020-11-08",
"shift_id": 4,
"staff_id": 3,
"bed_id": 2,
"update_time": "2020-11-05T06:38:59.456Z",
"update_user": 1,
"startTime": "09:27:00",
"endTime": "12:28:00",
"staffName": "王五",
"bedNumber": "1-1-2-1",
"shiftName": "早班"
},
{
"id": 8,
"staff_shift_id": 1,
"shift_time": "2020-11-07",
"shift_id": 4,
"staff_id": 3,
"bed_id": 2,
"update_time": "2020-11-05T06:38:59.456Z",
"update_user": 1,
"startTime": "09:27:00",
"endTime": "12:28:00",
"staffName": "王五",
"bedNumber": "1-1-2-1",
"shiftName": "早班"
},
{
"id": 3,
"staff_shift_id": 1,
"shift_time": "2020-11-02",
"shift_id": 5,
"staff_id": 2,
"bed_id": 2,
"update_time": "2020-11-05T06:38:59.456Z",
"update_user": 1,
"startTime": "08:30:00",
"endTime": "12:00:00",
"staffName": "张三",
"bedNumber": "1-1-2-1",
"shiftName": "早班"
}
]
//这里现将这6条数据整合成“早班”和“晚班”两条数据
var res = [];
var narr = [];
for (var i = 0; i < arr.length; i++) {
var n = res.indexOf(arr[i].shiftName);
if (n == -1) {
res.push(arr[i].shiftName);
narr.push({ "shiftName": arr[i].shiftName, "data": [arr[i]] })
} else {
narr[n].data.push(arr[i])
}
}
console.log(narr)
//遍历narr,为这两条数据添加dataItem['shift_time']属性
narr.forEach(item=>{
item.data.forEach(dataItem=>{
for(var key in dataItem){
if (key=='shift_time'){
let test=dataItem['shift_time']
try {
item[test].push({"staffName":dataItem['staffName'],"staff_id":dataItem['staff_id']});
}catch (e) {
console.log(e);
item[test]=[]
item[test].push({"staffName":dataItem['staffName'],"staff_id":dataItem['staff_id']});
}
}
}
})
})
console.log(narr)
</script>