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

有一个时间数组对象,时次不连续,怎样补全比较好?

有一个时间数组对象,时次不连续,怎样补全比较好?

红糖糍粑 2019-05-12 15:34:55
需要展示出一天中所有小时的数据,后端返回的数据是这样beforData:[{"time_hours":"09",//时间"approved_amount":28068.0,"pass_rate":1.0},{"time_hours":"10","approved_amount":0.0,"pass_rate":0.0},{"time_hours":"11","approved_amount":42706.0,"pass_rate":0.5},{"time_hours":"13","approved_amount":0.0,"pass_rate":0.0},{"time_hours":"15","approved_amount":37700.0,"pass_rate":0.5714285714},{"time_hours":"16","approved_amount":0.0,"pass_rate":0.0},{"time_hours":"17","approved_amount":29520.0,"pass_rate":0.6},{"time_hours":"18","approved_amount":0.0,"pass_rate":0.0},{"time_hours":"19","approved_amount":56216.0,"pass_rate":1.0},{"time_hours":"22","approved_amount":5800.0,"pass_rate":1.0},{"time_hours":"23","approved_amount":0.0,"pass_rate":0.0}]需要将缺少的小时补全,转化成[{"time_hours":"01:00","approved_amount":null,"pass_rate":null,},{"time_hours":"02:00","approved_amount":null,"pass_rate":null,},{"time_hours":"03:00","approved_amount":null,"pass_rate":null,},{"time_hours":"04:00","approved_amount":null,"pass_rate":null,},{"time_hours":"05:00","approved_amount":null,"pass_rate":null,},{"time_hours":"06:00","approved_amount":null,"pass_rate":null,},{"time_hours":"07:00","approved_amount":null,"pass_rate":null,},{"time_hours":"08:00","approved_amount":null,"pass_rate":null,},{"time_hours":"09:00","approved_amount":28068.0,"pass_rate":1.0},{"time_hours":"10:00","approved_amount":0.0,"pass_rate":0.0},{"time_hours":"11:00","approved_amount":42706.0,"pass_rate":0.5},{"time_hours":"12:00","approved_amount":null,"pass_rate":null,},{"time_hours":"13:00","approved_amount":0.0,"pass_rate":0.0},{"time_hours":"14:00","approved_amount":null,"pass_rate":null,},{"time_hours":"15:00","approved_amount":37700.0,"pass_rate":0.5714285714},{"time_hours":"16:00","approved_amount":0.0,"pass_rate":0.0},{"time_hours":"17:00","approved_amount":29520.0,"pass_rate":0.6},{"time_hours":"18:00","approved_amount":0.0,"pass_rate":0.0},{"time_hours":"19:00","approved_amount":56216.0,"pass_rate":1.0},{"time_hours":"20:00","approved_amount":null,"pass_rate":null,},{"time_hours":"21:00","approved_amount":null,"pass_rate":null,},{"time_hours":"22:00","approved_amount":5800.0,"pass_rate":1.0},{"time_hours":"23:00","approved_amount":0.0,"pass_rate":0.0},{"time_hours":"00:00","approved_amount":null,"pass_rate":null,},]这样的,请教一下大家这个要怎么做啊?
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

不谢,拿走:
constbeforeData=[{
"time_hours":"09",//时间
"approved_amount":28068.0,
"pass_rate":1.0
}];
constresult=Array.from({length:24},(v,i)=>i).map(hour=>{
letobj=beforeData.filter(has=>Number(has.time_hours)===hour)[0]||{};
return{
time_hours:`${`00${hour}`.slice(-2)}:00`,
approved_amount:obj.approved_amount||null,
pass_rate:obj.pass_rate||null
};
});
console.log(result);
就这么简单~~~
                            
查看完整回答
反对 回复 2019-05-12
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

补充一个线性时间复杂度的
functiongetFullRange(beforeData){
returnbeforeData
.reduce((arr,item)=>{
arr[+item.time_hours]=item
returnarr
},[...newArray(24)])
.map((item,i)=>{
if(!item){
item={
time_hours:String(i),
approved_amount:null,
pass_rate:null,
}
}
item.time_hours=item.time_hours.padStart(2,'0')+':00'
returnitem
})
}
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 435 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信