js 实现合并重复数据

2024.3.19今天我学习了如何对重复数据进行合并,数据格式如下:

const data= [
  { name: '张三', value: 2 },
  { name: '李四', value: 1 },
  { name: '张三', value: 1 },
  { name: '李四', value: 3 },
  { name: '张三', value: 1 }
];

当我们存在这样的数组的情况时,我们需要对重复name进行合并,然后value是合并之后的累加值。

一、定义一个空对象,判断该对象中是否存在当前name

const mergerd_data = {}  //定义空对象

data.forEach(item=>{
   if(mergerd_data[item.name]){//如果name已经存在空对象中
        mergerd_data[item.name].value += item.value //累加value值
    }

 })

二、如果不存在name在这个空对象中,就创建

const mergerd_data = {}  //定义空对象

data.forEach(item=>{
   if(mergerd_data[item.name]){//如果name已经存在空对象中
        mergerd_data[item.name].value += item.value //累加value值
    }else{
      mergerd_data[item.name] = {name:item.name,value:item.value}//创建新对象
   }

 })

三、将对象组转换成数组

const merged_array = Object.values(merged_data)

四、完整代码如下:

const data= [
  { name: '张三', value: 2 },
  { name: '李四', value: 1 },
  { name: '张三', value: 1 },
  { name: '李四', value: 3 },
  { name: '张三', value: 1 }
];

const mergerd_data = {}  //定义空对象

data.forEach(item=>{
   if(mergerd_data[item.name]){//如果name已经存在空对象中
        mergerd_data[item.name].value += item.value //累加value值
    }else{
      mergerd_data[item.name] = {name:item.name,value:item.value}//创建新对象
   }

 })

const merged_array = Object.values(merged_data)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

敲代码无敌小奶龙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值