zoukankan      html  css  js  c++  java
  • 判断一个字符串出现次数最多的字符,并返回这个字符和次数

                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);

  • 相关阅读:
    window字体安装方法,fonts安装方法
    在Vmware虚拟机中安装Mac OS
    winbox教程
    eclipse activiti 使用 集成 插件
    高等数学 1
    电路 分析 学习 书 的 推荐
    eclipse 替代 keil (二) eclipse 和 jdk 安装
    eclipse 替代 keil (三) 新建项目
    Spark Stuctured Streaming(实时流计算:Structured Streaming) windows开发环境搭建
    Hadoop HA一键启动,一键关闭脚本
  • 原文地址:https://www.cnblogs.com/webmc/p/11103862.html
Copyright © 2011-2022 走看看