You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除数组中重复Id的对象并保留最新count值?

数组去重:保留每个Id最后出现的对象

要实现移除数组中Id重复的对象,保留每个Id最后出现的项(无论count是否递增),可以通过以下两种简单方法实现:

方法一:使用普通对象存储最新项

利用对象的键唯一性,遍历数组时用Id作为键,后续同Id的对象会覆盖之前的,最后提取对象的值即可得到结果:

const serviceListData = [
  { Id: 1939808, count: 1 },
  { Id: 1939808, count: 2 },
  { Id: 1940022, count: 1 },
  { Id: 1940022, count: 2 }
];

const uniqueObj = {};
serviceListData.forEach(item => {
  uniqueObj[item.Id] = item;
});

const result = Object.values(uniqueObj);
console.log(result);
// 输出结果:
// [{ Id: 1939808, count: 2 }, { Id: 1940022, count: 2 }]

方法二:使用Map存储(更规范的键值对存储)

Map的键可以支持任意类型,逻辑和对象一致,遍历数组时用Id作为键更新对应的值,最后转成数组:

const uniqueMap = new Map();
serviceListData.forEach(item => {
  uniqueMap.set(item.Id, item);
});

const result = Array.from(uniqueMap.values());

这两种方法的核心逻辑都是用键值对记录每个Id的最新项,因为遍历顺序和原数组一致,后面出现的同Id对象会自动覆盖前面的,自然保留最后出现的那一项,完全不受count值是否递增的影响。

内容的提问来源于stack exchange,提问作者yasxcv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:35:28