注意一个字符串中是有可能出现N个同样次数的字符的,多考虑别整出bug了
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
let arr = 'afdafwerrsdfsadaf'
// arr = arr.toLowerCase() //不区分大小写
// 先把它切了转换成数组在转换成对象
arr = arr.split('')
let newArr = arr.reduce((pre, cur) => {
(cur in pre) ? pre[cur]++: pre[cur] = 1
return pre
}, {})
console.log(newArr)
// 获取对象中最大的值(就是出现最多的次数)
let max = 0
for(let key in newArr){
if(max < newArr[key]) {
max = newArr[key]
}
}
// 根据最大的值 把那个字符用数组存储起来
// 注意了,这里很容易就出现bug了,我们分不清最大值是不是唯一的,比如出现次数 a==b==c==max
// 所以就要用数组存储出现次数最多的字符
let brr = []
for(let key in newArr) {
if(max == newArr[key]) {
brr.push(key)
}
}
console.log("出现最多的字符串:" + brr.join())
console.log("次数:" + max)
</script>
</body>
</html>