★js統計一個字符串出現最多的字母(或者數組中出現次數最多的元素)


//字符串
var strs = "asdasdadd";
        function getmaxstr(str){
            if(str.length == 1){return str;}
            var newarr = [];
            for(var i = 0 ; ss= str.length, i<ss; i++ ){
                if(!newarr[str.charAt(i)]){
                    newarr[str.charAt(i)] = 1;
                }else{
                    newarr[str.charAt(i)] +=1;
                }
            }
            console.log(newarr);
            var maxkey='';
            var maxvalue=1;//設定一個值
            for(var k in newarr){
                if(newarr[k]> maxvalue){//根據這個值做判讀 將數組中的每個元素 與這個值做比較! 如果大於他,那么將住宿
                    maxvalue = newarr[k];//出現的次數
                    maxkey = k;//次數最多的 字母
                }
            }
            console.log(maxkey);
            return maxvalue;
        }
        getmaxstr(strs);

//數組

var arr =["a","b","c","c","c","d"];
    Array.prototype.diaohuan=function(arr){
        var newarr=[];
        for(var i = 0; i<this.length; i++){
            if(!newarr[this[i]] ){
                newarr[this[i]] = 1;
            }else{
                newarr[this[i]] +=1;
            }
        }
        console.log(newarr);
        var maxkey = 1;
        var maxvalue ="";
        for (var k in newarr){
            if(newarr[k] > 1){
                maxvalue =newarr[k];
                maxkey = k;
            }    
        }
        return maxvalue;
        console.log(maxvalue);
    }
      alert(arr.diaohuan());

 

函數的結構差不多,實際都是對數組的處理

一個主要的思路:新建一個空的數組newarr!將要處理的數組(字符串轉成數組)的元素做為鍵 存入新數組,
根據鍵的唯一做判斷,如果新數組newarr中沒有這個鍵,那么就存入,並給 值 為1,
                            如果新數組newarr中  有 這個鍵了,那么將該 鍵 對應的值 +1;。

然后 :對新數組newarr 取最大值!並獲取當前的索引,即可得到!!

用到的知識點:
1、charAt()函數:返回指定位置 長度為 1  的字符, 

stringObject.charAt(index) index必需。表示字符串中某個位置的數字,即字符在字符串中的下標。
字符串中第一個字符的下標是 0。如果參數 index 不在 0 與 string.length 之間,該方法將返回一個空字符串;

例如:

var str="Hello world!"
document.write(str.charAt(1))  輸出 e


2、 for in 循環

用 for-in 來遍歷一遍數組的內容 例如:

const arr = [1, 2, 3];
let index;
for(index in arr) {
    console.log("arr[" + index + "] = " + arr[index]);
}

//結果
arr[0] = 1
arr[1] = 2
arr[2] = 3

還可以遍歷對象 例如

const person = {
    fname: "san",
    lname: "zhang",
    age: 99
};
let info;
for(info in person) {
    console.log("person[" + info + "] = " + person[info]);
}
//結果
person[fname] = san
person[lname] = zhang
person[age] = 99

 


免責聲明!

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



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