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

本文通过实例展示了如何使用JavaScript的split(), reduce()和for...in方法对字符串进行操作,计算字符出现次数,并找出出现频率最高的字符。通过reduce函数逐个遍历数组,更新对象属性并找到最大值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我大概用到了 数组的 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 为出现次数

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值