js判断一个字符串中出现次数最多的字符及次数(正则表达式写法)

js判断一个字符串中出现次数最多的字符及次数

 这道题目在网上看到的常见写法如下:

var str="aabbcc";
function maxstringload(str) {
   var obj={};
    for(var i=0;i

 

        但是测试发现这个写法存在bug,没有处理不同字符但出现次数一样的情况,当你的输入的字符串是"aaabbbccc”时,输出的结果还是只有a一个字符的出现次数,但是b、c的出现此时是和a一样的;

js判断一个字符串中出现次数最多的字符及次数(正则表达式写法)_第1张图片

还有就是这个写法中需要一个专门来记录每个字符串出现次数的对象,先把每个字符的出现次数记录好,再在这个对象中找出出现次数最多的字符,在这个过程中需要两次for 循环的处理

       经过研究发现一种更为简便的写法,那就是利用正则表达式,实现如下:

var str='aabbcc';
//把字符串转化数组,并利用new Set()对数组进行去重
var arr=[...new Set(str.split(''))];
var max=0;
var code='';
for(var i=0;imax){
        max=val;
        code=arr[i];
    }else if(val==max){  //处理不同字符出现次数相同的情况
        code=`${code}、${arr[i]}`;
    }
}
console.log(`出现次数最多的字符是:${code},次数为:${max}`);

运行结果如下:

js判断一个字符串中出现次数最多的字符及次数(正则表达式写法)_第2张图片

js判断一个字符串中出现次数最多的字符及次数(正则表达式写法)_第3张图片

 

你可能感兴趣的:(前端编程题)