查找String中出現最多字符的次數和個數


Sting 的charAt方法返回相應位置的字符,使用該方法遍歷String,將每個字符存入對象屬性,遍歷屬性得到最多字符個數

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>

    <body>

        <script>
            window.onload = function() {
                new GetChar("lanleilinhello");
            }

            function GetChar(str) {
                this.obj = {};
                this.len = str.length;
                for(var i = 0; i < this.len; i++) {
                    var c = str.charAt(i);
                    //將每個字符作為對象屬性
                    if(this.obj[c]) {
                        this.obj[c]++;
                    } else {
                        this.obj[c] = 1;
                    }
                }
                console.log(this.obj);
                //遍歷對象
                this.max = 0;
                this.maxChar = '';
                for(var key in this.obj) {
                    if(this.max < this.obj[key]) {
                        this.max = this.obj[key];
                        this.maxChar = key;
                    }
                }
                console.log("最多的字符是" + this.maxChar);
                console.log("出現的次數是" + this.max);
            }
        </script>
    </body>

</html>

采用構建json的方法:

                var s='lannn';
                var json={};
                var num=1;
                for(let i=0;i<s.length;i++){
                    var c=s.charAt(i);//出現過的字符作為json的key
                    if(json[c]){//若出現過字符,key值加一
                        num++
                        json[c]=num;
                    }else{
                        json[c]=1;
                    }
                }
                console.log(json)
                var max=0;
                var maxChar='';
                for(var key in json){
                    if(max<json[key]){//若max小於key值則將key值賦給max,從而取得最大次數
                        max=json[key];
                        maxChar=key;
                    }
                }
                console.log('最多的字符為    '+maxChar);
                console.log('次數    '+max);

 

 

去除數組中重復數字:

            window.onload = function() {
                var e = 'ab cde';
                //將字符串反轉
                var a = e.split('').reverse().join('');
                console.log(a);
                //取代空格
                let b = e.replace(/\s/, '+');
                console.log(b)
                    //中間加+
                var c = e.split('');
                var arr = [];
                for(var i = 0; i < c.length; i++) {
                    arr.push(c[i]);
                    arr.push('+');
                }
                console.log(arr.join('').slice(0, -1));
                //將數字 12345678 轉化成 RMB 形式 如: 12,345,678,反過來每三個加,
                var num = {}; //命名空間
                num.n = 12345678;
                num.s = num.n.toString();
                num.a = num.s.split('').reverse();
                num.arr = [];
                for(let i = 0; i < num.a.length; i++) {
                    num.arr.push(num.a[i]);
                    if((i + 1) % 3 == 0) {
                        num.arr.push(',');
                    }
                }
                console.log(num.arr.reverse().join(''));
                //生成 5 個不同的隨機數
                let ranNum = [];
                for(let i=0;i<5;i++){
                    ranNum[i]=Math.floor(Math.random()*10)+1;
                    for(let j=0;j<i;j++){
                        if(ranNum[j]==ranNum[i]){
                            i--;//重復的數字重新生成新數字覆蓋
                        }
                    }
                }
                console.log(ranNum)
                //去掉數組中重復的數字,立flag,新數組中所有項與原數不同,flag可推入
                let arr1=[2,46,7,845,7,7,7,73];
                let arr2=[];
                let flag=1;
                for(let i=0;i<arr1.length;i++,flag=1){
                    for(let j=0;j<i;j++){
                        if(arr2[j]==arr1[i]){
                            flag=0
                        }
                    }
                    flag?arr2.push(arr1[i]):0;
                }
                console.log(arr2)

        //去掉重復數字方法二,新數組indexOf==-1(遠數組中某項在新數組中不含,可推入)

        var arr=[1,1,2,2,3,3,4,4];

        var arr2=[];

        for(var i=0;i<arr.length;i++){
          if(arr2.indexOf(arr[i])==-1){
          arr2.push(arr[i]);
          }
        }

        alert(arr2);


     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM