如何在JS中将字母转小写并统一统计字符出现次数?
解决不区分大小写的字符统计问题
Hey there! 刚接触JS就能写出字符统计的代码,已经很棒啦😎 要实现不区分大小写的统计,核心思路就是把所有字符统一转成小写(或大写)后再统计,这样'a'和'A'就会被识别成同一个统计项啦。
问题根源
你的原代码直接用原字符(比如'a'和'A')作为对象lettersCount的键,JS里字符串是严格区分大小写的,所以这两个会被当成完全不同的键,导致统计结果分开。
修改后的代码
只需要在遍历字符的时候,把当前字符转成小写,再用这个统一后的字符作为统计的键就可以了:
var str = "abcabcABCABC" var chars = str.split(""); var lettersCount = {}; for (var i = 0; i < chars.length;i++) { // 统一转成小写字符,消除大小写差异 var lowerChar = chars[i].toLowerCase(); if (lettersCount[lowerChar] == undefined ) lettersCount[lowerChar] = 0; lettersCount[lowerChar] ++; } for (var i in lettersCount) { console.log(i + ' = ' + lettersCount[i]); }
运行结果
执行这段代码后,控制台会输出:
a = 4 b = 4 c = 4
小补充
你也可以用toUpperCase()把所有字符转成大写,效果是完全一样的——只要保证统计时用的是统一大小写的字符,就能实现不区分大小写的计数啦~
内容的提问来源于stack exchange,提问作者buft
相关产品推荐
相关产品推荐

