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);
     
    // 输出结果为:【a=3,b=1,s=6,d=3,f=3,g=4,h=2,j=2,k=2】

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

    // 输出结果为:【s=6】
};
代码执行后,输出结果为:

各个字母出现的次数是: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;
      	    // 字符串中第一次出现的字母进入if分支
      	}
      	xiaomo[++obj[j]] = j;
    }
    console.log('最多的字符串为:'+xiaomo[xiaomo.length-1]+",出现了"+(xiaomo.length-1)+'次');
};
代码执行后,输出结果为:【最多的字符串为:s ,出现了6次】

你可能感兴趣的:(Web前端)