方法一:
思路分析:
1.先用分隔符把字符串转成数组,然后排序
2.声明三个初始值
3.循环这个数组
4.因为排过序,只有不同字母才会使 arr[i]==arr[i+1]不相等,所以n++
5.字母不同就做这次字母次数和上次字母的次数对比筛选/赋值
6.恢复次数的初始值
let str = 'assdasdnasdaasdasc'
let arr = str.split('').sort()
console.log(arr)
let mex = 0
let mexs = ''
let n = 1
for (let i=0 ;i<arr.length; i++){
if(arr[i]==arr[i+1]){
n++
}else{
if(n>mex){
mex = n
mexs = arr[i]
}
n=1
}
}
console.log(mex,mexs)
方法二:
思路分析:
1.声明一个空对象
2.循环这个字符串
3.声明一个变量接收字符串中每一个字母
4.做判断利用中括号查询语法,如果能在对象中查到这个属性,这个属性值就+1,没有就添加这个属性值等于1
5.声明俩个变量接收出现最多的次数和字母
6.循环这个对象
7.中括号查询语法筛选出出现最多的次数,赋值给变量
const str = 'aaaaasddddasassawwwwfxzczxczxassaassaassaas'
let o = {}
for (let i = 0; i < str.length; i++) {
let name = str[i]
if(o[name]){
o[name]++
}else{
o[name] = 1
}
}
let mex = 0
let mexs = ''
for (let key in o) {
if (mex < o[key]) {
mex = o[key]
mexs = key
}
}
console.log(mex,mexs)