前端比较常见的面试题:判断字符串中出现次数最多的字符,并输出出现的次数
var str = 'abcdefgacddded';
// 将字符串转换成数组
var arr = str.split('');
// 新建两个空数组来分别存放出现的字符和对应出现的次数
arr.forEach((item,index)=>{
var temp = newArr.indexOf(item);
if(temp==-1){
newArr.push(item);
numArr.push(1);
}else{
numArr[index]++;
}
})
// 上面已经分离出了出现的字符以及对应出现的次数
// 下面就找出出现次数最多的字符
// 避免对原数字数组产生影响
var numArr1 = [].concat(numArr);
// 对次数数组进行排序,找到最大值
var maxNum = numArr1.sort((a,b)=>{return b-a;})[0];
// 根据最大值找到字符串索引,因为numArr和newArr的索引是对应的
var index = numArr.indexOf(maxNum);
// 根据索引找到对应的字符串.
var maxStr = newArr[index];
console.log('出现次数最多的字符为:'+maxStr+',出现的次数为:'+maxNum+'次。');