js基础,假如让你求一个字符串出现最多次数的字符

首先看到这个题目,我会想到遍历这组字符串,然后存到一个地方,最后比较,输出打印,一个大体思路

然后我会想到谁来存这组数据,在许多数据类型中,数组,字符串,对象等等,无疑最适合的还是对象,然后我会建一个对象,

但是建造一个对象来存储的话,怎么进行比较呢,然后我会想到,来存储遍历下的数据,最后对象遍历的结果进行一下比较,然后就可以得到这个值了。

那么好,代码如下所示。

        var str = 'abcdabcdacbdcdcdabcahjdksauesdfjhsfdsufhdjs'   
// 求这个字符串出现最多的字母
        var obj = new Object ()                                   
// 创建一个对象,来存储上面的字符串出现的次数以及名字
        for (var i = 0 ; i < str.length ; i++) {                  
//   利用for循环来遍历这个字符串
            var a = str.charAt(i)                                 
//    用一个变量名来存储字符串中每个字母的名字用来给对象添加
            if (obj[a]) {                                         
//  如果obj这个对象有这个值就执行这串带代码,没有就执行else下面的代码
                obj[a]++                                          
//  如果有这个值就执行递增,
            } else {    
                obj[a] = 1                                        
// 若果没有就进行赋值操作让他等于1
            }
        }
        var max = 0                                               
// 声明一个变量赋值为0来让他存储出现次数最多的数
        var result = '' 
        for (var k in obj) {                                      
//遍历这个obj这个对象 ,for in  循环中的k代表对象的值,obj[k]代表k这个名字下的值 ,不可以加引号,因为k是个变量                                                                    
            if (max < obj[k]) {                                  
//if判断他是否大于max这个变量值
                max =obj[k]                                      
//如果大于那么就给max重新赋值为obj[k]
                result = k                                       
//   并且把k赋值到result中
            }
        }
        console.log(obj)                                        
//打印obj这个对象
        console.log (max)                                       
//打印max的数值
        console.log (result)                                    
//打印result结果,就是str字符串出现最多的字母

首先,我们做这种要求的代码的时候,首先要有一个大逻辑,然后在划分下面的小逻辑,最后一步一步实现就好,我建议大家在完成一个要求的时候完成一步就打印一下,保证代码的正确性再写。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值