查找字符串中出现最多次数的字符及其个数

中心思想:
1、利用string对象中的charAt()的方法将字符串中的每一个字符找出;
2、利用json[char]属性对每一次出现的字符进行计数;
3、进行最后的次数比较;得出出现最多的字符及其次数;

<!DaCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>
    </body>
    <script>
        /*
         * 面向过程法
         */

        var str = "abcssssssss";
        var json = {};
        for(var i = 0; i < str.length; i++) {
            var char = str.charAt(i);
            if(json[char]) { //char就是对象json的一个属性,json[char]是属性值,json[char]控制出现的次数 ;
                json[char]++;//次数加1
            } else {
                json[char] = 1;若第一次出现,次数记为1 ;
            }
        }
        console.log(json);//输出的是完整的对象,记录着每一个字符及其出现的次数 //遍历对象,找到出现次数最多的字符和次数 ;
        var max = 0;
        var maxChar = null;
        for(var key in json) {
            if(max < json[key]) {
                max = json[key];//max始终储存次数最大的那个 ;
                maxChar = key;//那么对应的字符就是当前的key ;
            }
        }

        console.log("出现次数最多是: " + maxChar+' , 总共出现: '+max+' 次');


        /*
         * 面向对象法
         */

        /*function Tab(str){
            this.a = {};
            for(var i = 0; i < str.length; i++) {

                this.char = str.charAt(i);
                if(this.a[this.char]) {
                    this.a[this.char]++;
                } else {
                    this.a[this.char] = 1;
                }
            }
            this.max = 0;
            this.maxChar = null;
            for(this.key in this.a) {
                if(this.max < this.a[this.key]) {
                    this.max = this.a[this.key];
                    this.maxChar = this.key;
                }
            }
            console.log("出现次数最多是: " + this.maxChar+' , 总共出现: '+this.max+' 次');
        }


//      实例
        var str = "abcsssss";
        var b=new Tab(str);*/


    </script>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值