组合两个数组,如果日期匹配,则使用javascript求和
我有两个数组a和b组合两个数组,如果日期匹配,则使用javascript求和,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有两个数组a和b a = [ RowDataPacket { total_phone: 0, log_date: 2020-09-16T18:30:00.000Z }, RowDataPacket { total_phone: 2, log_date: 2020-09-17T18:30:00.000Z }, RowDataPacket { total_phone: 0, log_date: 2020-09-18T18:30:00.000Z },
a = [
RowDataPacket { total_phone: 0, log_date: 2020-09-16T18:30:00.000Z },
RowDataPacket { total_phone: 2, log_date: 2020-09-17T18:30:00.000Z },
RowDataPacket { total_phone: 0, log_date: 2020-09-18T18:30:00.000Z },
RowDataPacket { total_phone: 0, log_date: 2020-09-19T18:30:00.000Z },
]
b= [
RowDataPacket {
total_phone_calls: 1,
date: 2020-09-16T18:30:00.000Z
},
RowDataPacket {
total_phone_calls: 11,
date: 2020-09-17T18:30:00.000Z
},
RowDataPacket {
total_phone_calls: 5,
date: 2020-07-24T18:30:00.000Z
},
}]
我不知道怎么做。有什么想法吗
正在查找c=[RowDataPacket{total:1,log_date:2020-09-16}
,RowDataPacket{total:13,log_date:2020-09-17},RowDataPacket{
总计:0,日志日期:2020-09-18},行数据包{总计:0,日志日期:
2020-09-19},行数据包{总数:5,日志日期:2020-09-24}]
已编辑
const a=[
{电话号码:0,记录日期:'2020-09-16T18:30:00.000Z'},
{电话号码:2,记录日期:'2020-09-17T18:30:00.000Z'},
{电话号码:0,记录日期:'2020-09-18T18:30:00.000Z'},
{电话总数:0,记录日期:'2020-09-19T18:30:00.000Z'}
]
常数b=[
{电话总数:1,日期:'2020-09-16T18:30:00.000Z'},
{电话总数:11,日期:'2020-09-17T18:30:00.000Z'},
{电话总数:5,日期:'2020-07-24T18:30:00.000Z'}
]
常量obj={}
a、 forEach(项目=>{
如果(对象[项目日志\日期]==未定义){
obj[item.log\u date]=item.total\u电话
}否则{
obj[item.log\u date]+=item.total\u电话
}
})
b、 forEach(项目=>{
如果(对象[项目日期]==未定义){
obj[item.date]=item.total\u电话
}否则{
obj[item.date]+=item.total\u电话
}
})
常量键=对象键(obj)
常数arr=[]
keys.forEach(key=>{
arr.push({
总计:obj[键],
日志日期:key
})
})
console.log(arr)
如果两个ArrayOOPS中的两个日期都匹配,则您的逻辑没有添加总计,抱歉。我上传了错误的答案:)现在更新了。谢谢,你的代码救了我。。你能帮我一下吗