js字符串出现次数最多的字母
. js字符串出现次数最多的字母
可以运行试试
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
<script>
function mostLetters(str) {
let arr = str.split("")
let obj = {}
arr.forEach((item)=>{
if(obj[item] == undefined){ //obj对象中是否有当前循环的字母,没有的话加入并赋值为1
obj[item] = 1
}else {
obj[item] = obj[item] + 1 //有当前字母就给值+1
}
})
console.log(obj)
let maxLetters = [] //为什么用数组呢?因为一句字符串里面可能出现次数相同的字母
let maxNumber = 0
console.log(Object.keys(obj)) //能输出obj对象所有的key,是一个数组
Object.keys(obj).forEach((key)=>{
if (maxNumber < obj[key]){
maxLetters = []
maxLetters.push(key)
maxNumber = obj[key]
}else if(maxNumber == obj[key]){
maxLetters.push(key)
}
})
console.log(maxNumber)
return (maxLetters)
}
console.log(mostLetters("hhhhhhaaaaaajixvcxvjokbjjjj")) // ["h", "a", "j"]
console.log(mostLetters("aiiooowwwwsssss")) // ["s"]
</script>
</html>
总结一下:
首先确定出现过哪些字母,顺便记录下出现的次数
找出出现次数最多的字母,可能有多个