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

JavaScript中如何查找数组重复值并将其存入新数组

数组重复元素提取实现

以下为JavaScript语言的实现方案,核心逻辑可复用至其他编程语言:

实现代码

如果你需要提取去重后的重复元素列表(每个重复元素只保留1次),可以用以下代码:

const originArr = [3,4,63,5,5,1,5,2,63,2,4,5,6,2,4,56,74,2,671,1,4,5,7,3,6];
// 统计每个元素的出现次数
const countMap = {};
originArr.forEach(item => {
  countMap[item] = (countMap[item] || 0) + 1;
});
// 筛选出现次数大于1的元素
const duplicateArr = Object.keys(countMap).filter(key => countMap[key] > 1).map(Number);

console.log(duplicateArr); // 输出结果:[1,2,3,4,5,6,63]

如果你需要提取所有重复出现的元素实例(比如元素5出现了5次,结果里保留后面4次重复的实例),可以用以下代码:

const originArr = [3,4,63,5,5,1,5,2,63,2,4,5,6,2,4,56,74,2,671,1,4,5,7,3,6];
const existed = new Set();
const duplicateArr = [];
originArr.forEach(item => {
  existed.has(item) ? duplicateArr.push(item) : existed.add(item);
});

console.log(duplicateArr); // 输出结果:[5,5,63,2,4,5,2,4,2,1,4,5,3,6]

运行逻辑说明

去重版重复元素列表逻辑

  • 第一步遍历原数组,用对象countMap做次数统计,key为数组元素值,value为该元素对应的出现次数
  • 第二步遍历countMap的所有键,筛选出值大于1的键,转换为数字类型后即得到所有出现过至少2次的元素集合,每个重复元素仅保留1次

全量重复实例列表逻辑

  • 初始化Set集合记录已经出现过的元素,同时初始化空数组存储结果
  • 遍历原数组的每一个元素:如果当前元素已经在Set中存在,说明是重复元素,直接推入结果数组;如果不存在,就把该元素加入Set做标记
  • 最终得到的结果数组包含所有重复出现的元素实例,顺序和原数组中重复出现的顺序完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:54:03