JavaScript统计a、o字符数并计算乘积的简洁实现方案
需求说明
需实现的文本处理逻辑如下:
- 统计给定文本中字母“a”的出现次数
- 统计给定文本中字母“o”的出现次数
- 输出两个计数值相乘的结果
原代码问题
原代码存在3处问题,无法得到正确结果:
- 字符串定义语法错误:待统计文本未包裹字符串引号,
toLowerCase()调用位置错误,运行时会直接抛出语法异常 - 计算逻辑错误:需求要求返回两个计数的乘积,原代码误用加法运算符
+,逻辑不符合要求 - 实现冗余:手写for循环遍历计数的写法可通过JS原生API简化,代码更简洁易读
简洁实现方案
无需单独封装遍历计数函数,利用字符串split方法即可快速统计指定字符的出现次数:将字符串按目标字符切割为数组,数组长度减1即为对应字符的出现次数。
完整可运行代码:
// 定义待统计文本,统一转小写避免大小写匹配遗漏 const text = "hello my name is Ola".toLowerCase(); // 分别统计字符a、o的出现次数 const countA = text.split('a').length - 1; const countO = text.split('o').length - 1; // 计算乘积并输出 const result = countA * countO; console.log(result);
针对示例文本,转小写后为hello my name is ola,其中a出现2次,o出现1次,最终输出结果为2。
内容的提问来源于stack exchange,提问作者Fernando Vasquez
相关产品推荐
相关产品推荐

