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
相关产品推荐
相关产品推荐

