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

如何用JavaScript统计字符串中字符出现次数,现有for循环代码如何修正?

代码修复与功能实现

原有代码问题

  • 未声明函数名,需求要求函数名为amount
  • 匹配逻辑错误:第二个入参是单个待匹配字符,无需加[i]索引,直接比对即可
  • 缺少返回值,统计完成后需返回计数结果
  • 调用时传入的字符串和字符需要加引号,否则会被识别为未定义变量

功能1:统计指定字符在字符串中的出现次数

修复后的for循环实现

function amount(str, targetChar) {
  let count = 0
  for (let i = 0; i < str.length; i++) {
    if (str[i] === targetChar) {
      count++
    }
  }
  return count
}

// 测试调用
console.log(amount('door', 'o')) // 输出 2

以上实现默认区分大小写,如果需要不区分大小写匹配,可在比对前统一转为大写/小写,比如str[i].toLowerCase() === targetChar.toLowerCase()

简洁实现(非for循环)

const amount = (str, targetChar) => str.split(targetChar).length - 1

功能2:查询字符串中每个字母的出现数量

function countEveryChar(str) {
  const charMap = {}
  for (let i = 0; i < str.length; i++) {
    const currentChar = str[i]
    charMap[currentChar] = charMap[currentChar] ? charMap[currentChar] + 1 : 1
  }
  return charMap
}

// 测试调用
console.log(countEveryChar('door')) // 输出 { d: 1, o: 2, r: 1 }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:15:02