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

JavaScript如何统计数组中仅出现恰好两次的完美配对数量

问题分析

你当前的代码默认规则是「元素每出现2次就算1个配对」,所以出现4次的元素会被统计为2个配对,和你要求的仅元素出现次数恰好为2次时才算1个有效配对的规则不符,才会输出错误的结果4。

修复方案

仅需调整reduce中的累加逻辑,只在元素出现次数刚好等于2的时候做计数即可,修改后的完整代码如下:

let ar1 = [12, 5, 5, 2, 1, 1, 1, 1, 2];

const countPairs = (ar) => {
  let obj = {};

  ar.forEach((item) => {
    obj[item] = obj[item] ? obj[item] + 1 : 1;
  });

  return Object.values(obj).reduce((acc, curr) => {
    acc += curr === 2 ? 1 : 0;
    return acc;
  }, 0);
};

console.log( countPairs(ar1) ) // 输出结果为2,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:36:02