一串字符得到该字符串最多的字符

我大概用到了 数组的 split  和 reduce 方法 和对象的 for in 方法 
直接上代码

let str = 'qqqqqwwwwweeeeerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr'
let arr = str.split('')
console.log(arr)
let obj = arr.reduce((pre,item)=>{
    if(!pre[item]){
        pre[item] = 1
    }else{
        pre[item] ++
    }
    return pre
},{})
console.log(obj)
let a = 0
let max = {}
for(key in obj){
    if(obj[key]>a){
        max.value = obj[key]
        max.key = key
    }
    a = obj[key]
}
console.log(max)

首先我们将字符串转为数组

得到这个数组后

我们就要使用这次我写博客练习的一个 数组方法了 reduce(逐个遍历数组元素)

该方法接受两个参数

 

参数一:

为一个函数 函数内有四个参数 这四个参数可以理解为

   第1个参数: 每一次迭代的 返回

   第2个参数: 遍历的每一项的值   类似于   forEach 的 item 

   第3个参数: 遍历的每一项key     类似于   forEach 的 index

   第4个参数: 被遍历的数组本身

参数二:

是遍历迭代的初始值(如果不设置这个值 则会将 遍历数组的第一项作为初始值 遍历从数组第二项开始 )

返回值:

这里的返回值不是这个 reduce的返回值 而是遍历的每一项的返回值  return 该值 将作用到下一次迭代 的第一个参数

上面是我对 reduce 方法的理解如有错误请大佬赐教

接下来我们来使用该方法

对上面得到的字符串数组进行遍历 我们将初始的迭代值设为一个空对象 

判断该对象中是否存在迭代的字符 如不存在则 创建该属性 存在则加一   一次迭代后将对象pre返回

进行下一次迭代  这样我能就得到一个对象 dey为 字符 value 为出现次数

接下来我们要拿到出现最多的字符以及他出现的次数(这个很简单不解释了)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值