前端处理返回数据为数组对象且对象嵌套数组并重名的数据,合并名称并叠加数据

前端处理返回数据为数组对象且对象嵌套数组并重名的数据,合并名称并叠加数据

var newList=[];
var table={};
var dataObj={};
var finalList=[];
var tableData=[
    {brName:'营业部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'20',tacheName:'奔驰'}]},
    {brName:'营业部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'30',tacheName:'宝马'}]},
    {brName:'营业部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'40',tacheName:'宝马'}]},
    {brName:'营业部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'50',tacheName:'帕萨特'}]},
    {brName:'营业部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'60',tacheName:'法拉利'}]},
    {brName:'营业部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'70',tacheName:'帕萨特'}]},
    {brName:'营业部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'80',tacheName:'法拉利'}]},
    {brName:'营业部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'90',tacheName:'奔驰'}]},
    {brName:'销售部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'10',tacheName:'奔驰'}]},
    {brName:'销售部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'50',tacheName:'奔驰'}]},
    {brName:'销售部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'70',tacheName:'帕萨特'}]},
    {brName:'销售部',dateStr:'2023-11-23',tacheArr:[{dealCnt:'20',tacheName:'帕萨特'}]},
];
for(let i in tableData){
    brName=tableData[i].brName;
    dateStr=tableData[i].dateStr;
    tacheArr=tableData[i].tacheArr;
    if(table[brName]==null){
         if(tacheArr[0].tacheName=='奔驰'){
               table[brName]={'name':brName,'dateStr':dateStr,'val1':Number(tacheArr[0].dealCnt),'val2':0,'val3':0,'val4':0,'val5':0,}
         }else if(tacheArr[0].tacheName=='宝马'){
               table[brName]={'name':brName,'dateStr':dateStr,'val1':0,'val2':Number(tacheArr[0].dealCnt),'val3':0,'val4':0,'val5':0,}
         }else if(tacheArr[0].tacheName=='法拉利'){
               table[brName]={'name':brName,'dateStr':dateStr,'val1':0,'val2':0,'val3':Number(tacheArr[0].dealCnt),'val4':0,'val5':0,}
         }else if(tacheArr[0].tacheName=='布加迪'){
               table[brName]={'name':brName,'dateStr':dateStr,'val1':0,'val2':0,'val3':0,'val4':Number(tacheArr[0].dealCnt),'val5':0,}
         }else if(tacheArr[0].tacheName=='帕萨特'){
               table[brName]={'name':brName,'dateStr':dateStr,'val1':0,'val2':0,'val3':0,'val4':0,'val5':Number(tacheArr[0].dealCnt),}
         }
    }else{
         if(tacheArr[0].tacheName=='奔驰'){
               table[brName].val1+=Number(tacheArr[0].dealCnt)
         }else if(tacheArr[0].tacheName=='宝马'){
               table[brName].val2+=Number(tacheArr[0].dealCnt)
         }else if(tacheArr[0].tacheName=='法拉利'){
               table[brName].val3+=Number(tacheArr[0].dealCnt)
         }else if(tacheArr[0].tacheName=='布加迪'){
               table[brName].val4+=Number(tacheArr[0].dealCnt)
         }else if(tacheArr[0].tacheName=='帕萨特'){
               table[brName].val5+=Number(tacheArr[0].dealCnt)
         }
    }
}
for(key in table){
    newList.push(table[key])
}
for(let k=0;k<newList.length;k++){
    dataObj={'brName':newList[k].name,'dateStr':newList[k].dateStr,'val1':newList[k].val1,'val2':newList[k].val2,'val3':newList[k].val3,'val4':newList[k].val4,'val5':newList[k].val5,}
    finalList.push(dataObj)
}
console.log(finalList)

这里可以看到我们输出的结果,我们已经将重名的数据合并并且相同的数据叠加合并

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码De搬运工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值