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

如何从对象数组中提取指定ID的重复数据

实现方法

首先修正原数组的语法错误(对象间缺少逗号),正确的数组定义如下:

const originalArr = [
  {id: 1, name:'jeff'},
  {id:1, name:'kent'},
  {id:2, name:'ynez'},
  {id:2, name:'cloe'},
  {id:3, name:'Ron'},
  {id:3, name:'chester'}
];

方法一:使用Array.filter()

这是最简洁的实现方式,直接筛选出所有id等于1的对象:

const duplicate = originalArr.filter(item => item.id === 1);
console.log(duplicate);
// 输出:[{id:1, name:'jeff'}, {id:1, name:'kent'}]

方法二:使用forEach遍历收集

如果需要手动控制遍历过程,可通过forEach逐个检查并收集目标对象:

const duplicate = [];
originalArr.forEach(item => {
  if (item.id === 1) {
    duplicate.push(item);
  }
});
console.log(duplicate);
// 输出结果同上

扩展:先判断重复再提取(适配更复杂场景)

如果需要先确认目标id存在重复,再提取对应项(本例中所有id均有重复),可先统计id出现次数再筛选:

// 第一步:统计每个id的出现次数
const idCount = {};
originalArr.forEach(item => {
  idCount[item.id] = (idCount[item.id] || 0) + 1;
});

// 第二步:筛选id为1且出现次数大于1的项
const duplicate = originalArr.filter(item => item.id === 1 && idCount[item.id] > 1);
console.log(duplicate);
// 输出结果同上

内容的提问来源于stack exchange,提问作者Kent C. Placia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:50:34