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

编写JavaScript函数:删除字符串中偶数次出现的字符

解决JavaScript删除字符串中偶数次出现字符的问题

实现思路

要实现删除每个字符偶数次出现的实例(即保留第1、3、5...次出现的字符,删除第2、4、6...次的),核心是追踪每个字符的出现次数,只保留奇数次出现的字符。

代码实现

基础循环版本

function removeEvenOccurrences(str) {
  // 记录每个字符的出现次数
  const charCount = {};
  let result = '';
  
  for (const char of str) {
    // 更新当前字符的计数,初始为0则加1,否则累加
    charCount[char] = (charCount[char] || 0) + 1;
    // 仅当计数为奇数时,将字符加入结果
    if (charCount[char] % 2 !== 0) {
      result += char;
    }
  }
  
  return result;
}

数组reduce版本(更简洁)

function removeEvenOccurrences(str) {
  return [...str].reduce((acc, char) => {
    acc.counts[char] = (acc.counts[char] || 0) + 1;
    if (acc.counts[char] % 2 !== 0) {
      acc.result += char;
    }
    return acc;
  }, { result: '', counts: {} }).result;
}

测试验证

// 测试示例1
console.log(removeEvenOccurrences('AAABBBCCC')); // 输出: "AABBCC"
// 测试示例2
console.log(removeEvenOccurrences('AAAABBBBCCCC')); // 输出: "AABBCC"

代码说明

  • charCount(或reduce中的counts)对象用于实时记录每个字符的出现次数;
  • 遍历字符串时,每遇到一个字符就更新计数,若当前计数为奇数,则保留该字符到结果中;
  • 两个版本逻辑完全一致,只是写法不同,可根据习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:50:49