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

JavaScript如何筛选数组仅返回出现次数为1的元素

实现思路

要得到数组中仅出现一次的元素,核心逻辑是先统计每个元素的出现次数,再筛选出出现次数等于1的元素即可,以下是两种常用实现方案:

方案1:Map统计次数(推荐,时间复杂度O(n),适合大数组)

先遍历一次数组用Map记录每个元素的出现次数,再遍历Map筛选出符合要求的元素:

function getOnlyOccurOnce(arr) {
  const countMap = new Map();
  // 统计每个元素出现次数
  arr.forEach(item => {
    countMap.set(item, (countMap.get(item) || 0) + 1);
  });
  // 筛选出现次数为1的元素
  return Array.from(countMap.entries())
    .filter(([_, count]) => count === 1)
    .map(([item]) => item);
}

// 测试用例
const arr = [1,1,2,3,5,5];
console.log(getOnlyOccurOnce(arr)); // 输出 [2,3]

方案2:直接过滤(写法简洁,时间复杂度O(n²),适合小数组)

利用indexOf返回元素第一次出现的下标、lastIndexOf返回元素最后一次出现的下标,两者相等说明元素仅出现一次:

function getOnlyOccurOnce(arr) {
  return arr.filter(item => arr.indexOf(item) === arr.lastIndexOf(item));
}

// 测试用例
const arr = [1,1,2,3,5,5];
console.log(getOnlyOccurOnce(arr)); // 输出 [2,3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:54:04