js找出字符串出现最多次数的字符以及次数
js找出字符串出现最多次数的字符以及次数
·
方法一
先获取字符和次数的对象,再统计对象里面的最大值,最后拿最大值去对比。
<script>
var str = 'aabbbcccccdddddddd';
var obj = {}; //创建一个对象
for(var i=0;i<str.length;i++){//每一个字符都要知道次数,所以要循环
var char = str.charAt(i);//返回指定索引处的字符
if(obj[char]){
obj[char]++
}else{
obj[char] = 1;
}
}
console.log(obj);//{a:2,b:3,c:5,d:8}
//统计出来最大值
var max = 0;
for(var key in obj){
if(max<obj[key]){
max = obj[key];
}
}
console.log(max);//8
//拿最大值去对比
for(var key in obj){
if(obj[key] == max){
console.log('最多的字符是' + 'key');//d
console.log('出现的次数是' + 'max');//8
}
}
</script>
方法二
先获取次数最多的字符和次数的变量,对原始字符串进行排序(字符串转为数组,数组进行排序后转为字符串),正则匹配到重复内容,再进行判断。
<script>
//需求:判断一个字符串中出现次数做多的字符,并统计次数
//出现次数最多的字符的变量
var value = '';
// 出现的次数的变量
var index = 0;
//原始字符串改为计算好的字符串(排序)
var str = 'avsgsgehdgyydgyyyyesnnngs';
//字符串转换为数组
var arr = str.split('');
//数组进行排序再改为字符串
var str = arr.sort().join('');
//正则匹配到了重复内容
var reg = /(\w)\1+/g;
//判断
str.replace(reg,function(val,item){
if(index<val.length){
index = val.length;
value = item;
}
})
console.log('出现次数做多的字符是:'+value,'出现的次数是:'+index);
</script>
更多推荐
已为社区贡献2条内容
所有评论(0)