判断一个字符串出现次数最多的字符,并返回这个字符和次数

            var str = 'abcdefgaddda';
            var arr = str.split('');   //将字符串转为数组
            var newArr = [];      //声明一个数组保存去重后的字符
            var numArr = [];      //声明一个数组保存字符对应的个数
            arr.forEach(function(element,index,array){
                var index1 = newArr.indexOf(element);    //获取当前元素在去重数组中的索引,如果存在则大于等于0,不存在则为-1
                if(index1==-1){
                    newArr.push(element);   //判断去重数组里没有当前元素,所以往数组里面追加
                    numArr.push(1);          //同步更新个数组对应的字符个数,刚追加进去都为1
                }else{
                    numArr[index1]++;        //如果当前元素已存在,则更新个数数组对应的字符个数自增1
                }
            })
            console.log(arr,newArr,numArr);
            //["a", "b", "c", "d", "e", "f", "g", "a", "d", "d", "d", "a"] 原字符数组
            //["a", "b", "c", "d", "e", "f", "g"]  去重后的字符的数组
            //[3, 1, 1, 4, 1, 1, 1]   去重后的字符数组对应的个数数组
            
            //得到去重后的字符数组及对应的字符个数后,找个数最大的数及对应的字符
            function sortNumber(a,b){
                return b-a;   //规定排序规则
            }
            var numArr1 = [].concat(numArr);   
            //创建一个新数组并连接原数组,这样改变原数组才不会影响复制后的数组
            numArr1.sort(sortNumber);  //将每个字符的个数从大到小排序
            var maxNum = numArr1[0];   //获取最大个数
            var index = numArr.indexOf(maxNum);   //最大个数对应原数组的位置
            var maxStr = newArr[index];           //根据最大个数的位置找到出现次数最多的字符
            console.log('字符串"'+str+'",'+maxStr+'出现次数最多,次数为'+maxNum);

 

转载于:https://www.cnblogs.com/webmc/p/11103862.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值