为了账号安全,请及时绑定邮箱和手机立即绑定

请教,如何处理下面的这种格式

请教,如何处理下面的这种格式

鸿蒙传说 2019-06-18 10:01:10
[{time:12/30/2018,cabin:'w',Type:'NonStop',dcp:37},{time:12/30/2018,cabin:'w',Type:'NonStop',dcp:37},{time:12/31/2018,cabin:'a',Type:'NonStop',dcp:37},{time:12/31/2018,cabin:'w',Type:'NonStop',dcp:37},{time:12/31/2018,cabin:'w',Type:'NonStop',dcp:37},{time:12/30/2017,cabin:'w',Type:'NonStop',dcp:37},{time:12/31/2017,cabin:'w',Type:'NonStop',dcp:37},{time:12/31/2017,cabin:'w',Type:'NonStop',dcp:37},{time:12/31/2017,cabin:'w',Type:'NonStop',dcp:37},{time:12/31/2017,cabin:'j',Type:'NonStop',dcp:37},][{time:12/30/2018,cabin:'w',Type:'NonStop',dcp:74,w:2},{time:12/31/2018,cabin:'w',Type:'NonStop',dcp:74,w:2},{time:12/31/2018,cabin:'a',Type:'NonStop',dcp:37,a:1},{time:12/31/2017,cabin:'w',Type:'NonStop',dcp:111,w:3},{time:12/31/2017,cabin:'j',Type:'NonStop',dcp:37,j:1},]请问各位大佬,如何把上面的数组整合成下面的数组形式啊,只要是日期相同,cabin相同,那么他们的其他字段的数值就相加,并且把cabin字段的value取出来变为一个新的字段加入当前对象,而它的值则是重复的数量,就是同一日期同一个cabin的数量
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超13个赞

constresData=sourceData.reduce((prev,cur,index,src)=>{
if(!index)return[{...cur,[cur.cabin]:1}]
constprevEle=prev[prev.length-1]
if(cur.time===prevEle.time&&cur.cabin===prevEle.cabin){
prevEle[prevEle.cabin]++
prevEle.dcp+=cur.dcp
}else{
prev.push({...cur,[cur.cabin]:1})
}
returnprev
},[])
                            
查看完整回答
反对 回复 2019-06-18
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

constnewArr=arr.reduce((a,b)=>{
let{time,cabin,dcp}=b;
letindex=a.findIndex(val=>{
returnval.time===time&&val.cabin===cabin;
});
if(index>=0){
letcur=a[index];
cur[cabin]++;
cur['dcp']+=dcp;
}else{
letclone={...b};
clone[cabin]=1;
a.push(clone);
}
returna;
},[]);
时间格式被转换了,需要自行调整下
                            
查看完整回答
反对 回复 2019-06-18
  • 2 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号