源数据:data:[{parkId:1,scheduleId:1,hasStock:false},{parkId:1,scheduleId:2,hasStock:false},{parkId:1,scheduleId:3,hasStock:false},{parkId:2,scheduleId:1,hasStock:false},{parkId:2,scheduleId:2,hasStock:false},{parkId:2,scheduleId:3,hasStock:false}]期望是将parkId相同的项合并组成以下格式:[{parkId:1,date:[{scheduleId:1,hasStock:false},{scheduleId:2,hasStock:false},{scheduleId:3,hasStock:false}]},{parkId:2,date:[{scheduleId:1,hasStock:false},{scheduleId:2,hasStock:false},{scheduleId:3,hasStock:false}]}]各位大佬有没有什么比较优雅的方式
2 回答
www说
TA贡献1775条经验 获得超8个赞
letaux={}letresult=[]data.forEach(obj=>{let{parkId,...restProps}=objif(!aux[parkId])aux[parkId]={parkId,data:[]}aux[parkId].data.push({...restProps})})for(letkeyinaux){result.push(aux[key])}使用aux作为一个储存中介,可以支持乱序
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
data.map(d=>d.parkId).filter((v,idx,arr)=>arr.indexOf(v)===idx).map(parkId=>{letd={parkId,data:[]}d.data=data.filter(item=>item.parkId===parkId).map(item=>{return{scheduleId:item.scheduleId,hasStock:item.hasStock}})returnd})不过谈不上优雅。
添加回答
举报
0/150
提交
取消