方法一:(正则法)
var str = "abaasdffggghhjjkkgfddsssss";
var arr1 = []; //用于存放每轮循环相同的字符串
var str2 = ""; //用于存放出现次数最多的那个字符
var max = 0; //用于存放出现的最大次数(就是数组arr1的长度)
for(var i = 0;i < str.length;i++){
var reg = new RegExp(str[i],"g");
arr1 = str.match(reg);
if(arr1.length > max){
max = arr1.length;
str2 = str[i];
}
}
console.log(str2+","+max)
方法二:(常规方法)
var str = "abaasdffggghhjjkkgfddsssss";
var arr1 = []; //存放不重复的字符
var arr2 = []; //存放各个字符出现的次数
for(var i = 0;i < str.length;i++){
var index = arr1.indexOf(str[i]);
if(index == -1){
arr1.push(str[i]);
arr2.push(1); //每有一个不相同的字符就向数组arr2中存放一个1,代表出现了一次
}else {
arr2[index] ++; //每次出现相同的字符先判断在数组arr1中的位置,在使用此index让数组arr2的对应下标的项自增一
}
}
console.log(arr1);
console.log(arr2);
var max = 0;
for(var j = 0;j < arr2.length;j++){
if(arr2[j] > max){
var s = "";
max = arr2[j];
s = arr1[j];
}
}
console.log(s+","+max)
方法三:(删除法)
var str = "abaasdffggghhjjkkgfddsssss";
var arr = str.split('');
var count = 0; //统计数量
var a = []; //存放各个字符数量的数组
for(var i = 0;i < arr.length;i++){
for(var j = i;j < arr.length;j++){
if(arr[i] == arr[j+1]){ //判断当前项和当前项的下面所有项是否相等
arr.splice(j+1,1); //如果相等就删除此项
j--; //删除此项,担负起安详的后面所有项会前移,所以让j--
count++;
}
}
a.push(count);
count = 0;
}
console.log(a);
a.sort(sortNum);
function sortNum(a,b){
return b-a;
}
console.log(a[0] + 1);