js字符串出现次数最多的字母

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>

总结一下:
首先确定出现过哪些字母,顺便记录下出现的次数
找出出现次数最多的字母,可能有多个

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值