设置n、m两个索引,每次循环发现值相等则让m++,一直到最后不相等时对应的长度是 m-n。
然后将 n 索引位置移到 m 的位置,m++,继续循环,直到把所有的都找出来。
let str = "aaaaababbcccdfg" //非有序排序
let arr = str.split('')
arr = arr.sort() //变成数组做好排序
let obj = {}
let code= arr[0]
let n = 0
let m = 0 //因为第一次循环code必定等于arr[0],此时m会变成1
for(let d of arr) {
if(code === d) {
m++
}else {
obj[ code ] = m - n
n = m
m++
}
code = d
}
console.log(obj)
let maxNum = 0
let result = ''
for (let i in obj) {
if (obj[i] > maxNum) {
maxNum = obj[i]
result = i
}
}
console.log(result,maxNum)