原生js字符出现最多
给大家分享一个原生js判断字符中,出现最多的元素,可以兼用同时有几个元素最大值的写法,用原型链扩展,只要引入,任何时候都可以对String类型进行引用
String.prototype.mostCharAt = function(){
var obj = {},num = 0,res = {};//obj记录各个字符出现的次数,num记录次数最大值,res记录最大次数的对象
for(var i=0,j = this.length;i < j;i++){//历遍字符串
var str = this.charAt(i);//用charAt获取字符
obj[str] == undefined ? obj[str] = 1 : obj[str]++;//初始化obj字符数值或者自+1
obj[str] > num ? num = obj[str] : '';//判断并记录最大值
}
for(var key in obj){
if(obj[key] == num) res[key] = obj[key];//根据最大值记录对象
}
return res;
}
console.log('sssbbbcfgg'.mostCharAt());//结果为{'s':3,'b':3}
console.log('sssbbcfgg'.mostCharAt());//结果为{'s':3}
var strObj = 'sssbbbcfgg'.mostCharAt()
for(var key in strObj){
console.log(key+':'+strObj[key])
}
//输出 s:3
//输出 b:3
希望大家喜欢我这个分享