判斷一個字符串中出現(xiàn)次數(shù)最多的字符,統(tǒng)計(jì)這個字符出現(xiàn)的次數(shù):如字符串"abcdefgaddda",d出現(xiàn)次數(shù)最多,次數(shù)為

var str = 'abcdefgaddda';
            var arr = str.split('');   //將字符串轉(zhuǎn)為數(shù)組
            var newArr = [];      //聲明一個數(shù)組保存去重后的字符
            var numArr = [];      //聲明一個數(shù)組保存字符對應(yīng)的個數(shù)
            arr.forEach(function(element,index,array){
                var index1 = newArr.indexOf(element);    //獲取當(dāng)前元素在去重數(shù)組中的索引,如果存在則大于等于0,不存在則為-1
                if(index1==-1){
                    newArr.push(element);   //判斷去重數(shù)組里沒有當(dāng)前元素,所以往數(shù)組里面追加
                    numArr.push(1);          //同步更新個數(shù)組對應(yīng)的字符個數(shù),剛追加進(jìn)去都為1
                }else{
                    numArr[index1]++;        //如果當(dāng)前元素已存在,則更新個數(shù)數(shù)組對應(yīng)的字符個數(shù)自增1
                }
            })
            console.log(arr,newArr,numArr);
            //["a", "b", "c", "d", "e", "f", "g", "a", "d", "d", "d", "a"] 原字符數(shù)組
            //["a", "b", "c", "d", "e", "f", "g"]  去重后的字符的數(shù)組
            //[3, 1, 1, 4, 1, 1, 1]   去重后的字符數(shù)組對應(yīng)的個數(shù)數(shù)組
            
            //得到去重后的字符數(shù)組及對應(yīng)的字符個數(shù)后,找個數(shù)最大的數(shù)及對應(yīng)的字符
            function sortNumber(a,b){
                return b-a;   //規(guī)定排序規(guī)則
            }
            var numArr1 = [].concat(numArr);   
            //創(chuàng)建一個新數(shù)組并連接原數(shù)組,這樣改變原數(shù)組才不會影響復(fù)制后的數(shù)組
            numArr1.sort(sortNumber);  //將每個字符的個數(shù)從大到小排序
            var maxNum = numArr1[0];   //獲取最大個數(shù)
            var index = numArr.indexOf(maxNum);   //最大個數(shù)對應(yīng)原數(shù)組的位置
            var maxStr = newArr[index];           //根據(jù)最大個數(shù)的位置找到出現(xiàn)次數(shù)最多的字符
            console.log('字符串"'+str+'",'+maxStr+'出現(xiàn)次數(shù)最多,次數(shù)為'+maxNum);

利用對象的方法進(jìn)行計(jì)算

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('出現(xiàn)次數(shù)最多的是:'+iIndex+'出現(xiàn)'+iMax+'次');
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容