js_判断一个字符串出现次数最多的字符,统计这个次数

这篇博客介绍了如何使用JavaScript来找出字符串中出现最频繁的字符并计算其出现次数,涉及Array对象的includes()、push()方法,String对象的match()方法,以及RegExp对象的test()方法。同时提到了在Visual Studio Code编辑器和Chrome浏览器中的实践工具。

练习002:判断一个字符串出现次数最多的字符,统计这个次数

【知识点】

(1)Array对象API:includes()、push()
(2)String对象API:match()
(3)RegExp对象API:test()

【工具】

(1) visual studio code代码编辑器
(2)Chrome浏览器

【代码】
<script>
    /*
        描述:判断一个字符串出现次数最多的字符,统计这个次数功能
        参数:str--字符串
        返回值:数组--数组第一个元素是最大字符出现次数,之后是出现最多次数的字符
    */ 
    function mostChar(str) {

        //存储字符串中出现的不同的字符
        var charArr = [];
        //存放不同的字符对应的出现次数,键key为字符,值value为字符出现的次数
        var charObj = {};
        //存放出现次数最多的字符,存在字符出现次数相等的可能,所以使用数组存储
        var mostArr = [];
        //记录字符出现最多次数的数
        var most = 0;
        
        for (var i = 0; i < str.length; i++) {
            //如果数组charArr中没有字符str[i],并且字符str[i]是字母/数字/中文
            if (!charArr.includes(str[i]) && /[a-zA-Z0-9\u4E00-\u9FA5]/.test(str[i]))
                //将字符str[i]添加到数组charArr
                charArr.push(str[i]);
        }
        
        for (var i = 0; i < charArr.length; i++) {
            //获取字符在字符串中出现的次数
            let count = str.match(new RegExp(charArr[i], 'g')).length;
            //以字符为键,次数为值,存入对象charObj中
            charObj[charArr[i]] = count;
            //在该循环中获得做大的次数数
            if (most < count) most = count;
        }
        
        //存入最大的次数 数
        mostArr.push(most)
        for (var key in charObj) {
            //如果字符的次数为最大次数 数
            if (charObj[key] == most) {
                //存入数组mostArr
                mostArr.push(key)
            }
        }

        return mostArr;
    }
    /*
        功能测试
    */
    var str1 = 'Good Good Study, Day Day Up.';
    console.log(mostChar(str1)); //输出:[4, "o"]
    var str2 = 'This is a 测试,the 测试号 is ID222222';
    console.log(mostChar(str2)); //输出:[6, "2"]
    var str3 = '风声雨声读书声声声入耳,家事国事天下事事事关心。';
    console.log(mostChar(str3)); //输出:[5, "声", "事"]
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值