js统计字符串中出现次数最多的字符?

方法1

// es6

let theMost = str => str.split('').sort()
.join('').match(/(\S)\1*/g)
.sort((a,b)=>b.length-a.length)[0][0]

// es5
function theMost(str){
    return str.split('').sort().join('').match(/(\S)\1*/g).sort(function(a,b){
        return b.length - a.length
    })[0][0]
}

方法2

var str = '我爱北京天安门,天安门上太阳升';
var freqs = {}; // 用来记录所有的字符的出现频次
var mostFreqChar = ''; //用来记录最大频次的字符

for (var i = 0; i < str.length; i++) {
    var char = str[i];
    if (!freqs[char]) {
        freqs[char] = 0;
    }
    freqs[char] ++;
    if (mostFreqChar == '' || freqs[char] > freqs[mostFreqChar]) {
        mostFreqChar = char;
    }
}
return mostFreqChar


console.log(freqs);
console.log(mostFreqChar);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容