判斷一個字符串中出現次數最多的字符,統計這個字符出現的次數:如字符串"abcdefgaddda",d出現次數最多,次數為

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

利用對象的方法進行計算

var str = 'abcdefgaddda';
var json = {};
for (var i = 0; i < str.length; i++) {
    if(!json[str.charAt(i)]){
       json[str.charAt(i)] = 1;
    }else{
       json[str.charAt(i)]++;
    }
};
var iMax = 0;
var iIndex = '';
for(var i in json){
    if(json[i]>iMax){
         iMax = json[i];
         iIndex = i;
    }
}        
console.log('出現次數最多的是:'+iIndex+'出現'+iMax+'次');
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容