JS练习题①:求字符串中出现次数最多的字母和出现次数

练习题的题目是,【给你一个字符串,寻找该字符串中出现次数最多的字母和出现次数。比如:"aadfdfdfxcvbvbeeeessscv"】

分享两个独特思路的JS代码

funOne:利用split方法,求出每个字母出现次数,比较次数求得最大值

function funOne(){
    var string = "abaasdffggghhjjkkgfddsssss";
    var countArr = new Array();
    var i = 0;
    while(string.charAt(0)){
        // 结果是a=3,用split将字符串按照当前字母分段截取,可获得当前字母出现的次数
     	countArr[i] = string.charAt(0) + "=" + (string.split(string.charAt(0)).length - 1);
     	// 去掉字符串中的当前字母
        string = string.split(string.charAt(0)).join("");
        i++;
    }
    console.log('各个字母出现的次数是:' + countArr);
     
    // 输出结果为:【<span role="presentation" class="objectBox objectBox-text ">a=3,b=1,s=6,d=3,f=3,g=4,h=2,j=2,k=2】</span>

    for(var j = 0,temp=0; j < countArr.length; j++){
        // 比较每一个字母出现的次数,一次循环求出最大值
     	if(temp <= Number(countArr[j].split("=")[1])){
     	    temp = Number(countArr[j].split("=")[1]);
            i = j;
        }
    }
    console.log('出现次数最多的字母是:' + countArr[i]);

    // 输出结果为:【<span role="presentation" class="objectBox objectBox-text ">s=6</span>】
};
代码执行后,输出结果为:

各个字母出现的次数是:a=3,b=1,s=6,d=3,f=3,g=4,h=2,j=2,k=2

出现次数最多的字母是:s=6

需要说明的是,JS中的split() 方法用于把一个字符串分割成字符串数组。

funTwo:

function funTwo(){
    // var str ="abaasdffggghhjjkkgfddsssss";
    var str = "abcaaa";
    var arr = str.split("");
    var obj = {};
    var xiaomo = [];
    for(var i=0,j; j=arr[i]; i++){
        if(!obj[j]){
            obj[j] = 0;
      	    <span style="font-family:Arial, Helvetica, sans-serif;">// 字符串中第一次出现的字母进入if分支</span>
      	}
      	xiaomo[++obj[j]] = j;
    }
    console.log('最多的字符串为:'+xiaomo[xiaomo.length-1]+",出现了"+(xiaomo.length-1)+'次');
};
代码执行后,输出结果为:【最多的字符串为:s ,出现了6次】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值