js排序--一道js数据结构题

时间:2022-09-21 10:27:40

给一个数组:

[{ GroupMark: "", GroupName: "hao", SendTime: '123', SendContent: "1ha" },
{ GroupMark: "1", GroupName: "hao", SendTime: '123', SendContent: "2ha" },
{ GroupMark: "1", GroupName: "hao", SendTime: '123', SendContent: "3ha" },
{ GroupMark: "22", GroupName: "hao", SendTime: '123', SendContent: "4ha" },
{ GroupMark: "3", GroupName: "hao", SendTime: '123', SendContent: "6ha" },
{ GroupMark: "22", GroupName: "hao", SendTime: '123', SendContent: "5ha" }]

目标

[{"GroupMark":"","GroupName":"hao","SendTime":"123","SendContent":["1ha"]},
{"GroupMark":"1","GroupName":"hao","SendTime":"123","SendContent":["2ha","3ha"]},
{"GroupMark":"22","GroupName":"hao","SendTime":"123","SendContent":["4ha","5ha"]},
{"GroupMark":"3","GroupName":"hao","SendTime":"123","SendContent":["6ha"]}]

//参照数组去重的
var
arr =[{ GroupMark: "", GroupName: "hao", SendTime: '123', SendContent: "1ha" }, { GroupMark: "1", GroupName: "hao", SendTime: '123', SendContent: "2ha" }, { GroupMark: "1", GroupName: "hao", SendTime: '123', SendContent: "3ha" }, { GroupMark: "22", GroupName: "hao", SendTime: '123', SendContent: "4ha" }, { GroupMark: "3", GroupName: "hao", SendTime: '123', SendContent: "6ha" }, { GroupMark: "22", GroupName: "hao", SendTime: '123', SendContent: "5ha" }] var tempObj ={} var resArr = [] for(let [index,item] of arr.entries() ){ let {GroupMark,GroupName,SendContent} = item let keyStr = GroupMark+'&'+GroupName if(tempObj[keyStr]){ let tempSendContent= tempObj[keyStr].SendContent tempObj[keyStr].SendContent=[...tempSendContent,SendContent] }else{ tempObj[keyStr]={ ...item, SendContent:[SendContent] } } } for (let item in tempObj) { resArr.push(tempObj[item]) } console.log(resArr)