【總結】【空思想一】字串或數組中重複字元及次數

來源:互聯網
上載者:User

標籤:思維   字元   接收   join   交流   asc   遍曆   組成   fine   

以下為“空思想一”,未完待續~~~(歡迎大家留言評論,誠懇與大家共同進步!)
(若發現錯誤,拜託指正,本人重謝)
null與undefined有很大的區別,知道就行。但是學習不僅在於知道,學以致用才算是自己的。本篇只為"空思想"之引入,以後會
繼續更新。敬請期待!有想法的,歡迎回複討論。可在評論留言互動,可發郵箱([email protected])!
<script>
//【總結】字串或數組中重複字元及次數
//推薦方法:
//正則方式:1,先把原字串重複的字元放在一起;2,利用正則分開不重複的字元;3,按重複次數排序。
//常規方法:(原理很重要,深化學習,鍛煉思維)
//重複處理:Null 物件接收,for-if-else。if分支判斷不存在,用來匯入並初始化(首次出現的值,Null 物件中不存在,滿足條件即執行匯入並初始化) ;else分支判斷存在,用來累加(遍曆後再次出現,就重複了,判斷為存在,執行累加過程)。
    //審查結果:空變數存值,for-if。遍曆找合格(次數就初始化為0。可理解為,把條件初始化為最不合格值,迭代變數,條件應該有最值),迭代一次,符合條件就修改一次變數值,再找就在判斷,直至找到合格就儲存下來,迭代繼續,以後不在符合條件,就不在修改。
    var str = ‘aaabbbcccaaabbbaaabbbbbbbbbb‘;
// 0123456
var json = {};
for (var i = 0; i < str.length; i++) {
if(!json[str.charAt(i)]){//判斷存在 首次i=0,json["a"]不存在,json["a"]=1;
// if(json[str.charAt(i)]===undefined){//==不報錯,但提示錯,不合規範
json[str.charAt(i)] = 1;
}else{//i=6,json["a"]存在,json["a"]=1,1++=2,json["a"]=2;
json[str.charAt(i)]++;
}
};
var num = 0;//存最多次數 value
var char = ‘‘;//存對應字元 key
for(var key in json){//var key in json
if(json[key]>num){
num= json[key];
char = key;
}
}
alert(‘出現次數最多的是:‘+char+‘,出現‘+num+‘次‘);
// console.log(json);//{a: 9, s: 7, d: 1, f: 1}
// console.log(json["a"]);//9
console.log(‘出現次數最多的是:‘+char+‘,出現‘+num+‘次‘);//9

//推薦方法:
//正則方式:1,先把原字串重複的字元放在一起;2,利用正則分開不重複的字元;3,按重複次數排序
var s =str;//s=‘aaabbbcccaaabbbaaabbbbbbbbbb‘;
var a = s.split(‘‘);
// console.log(a);//返回一個由s中單個字元組成的數組
a.sort();
s = a.join(‘‘);
// console.log(s);//返回一個由數組a中字元按ASC排序後的字串
//實現將原字串按ASC碼排序,重複的在一起,重複的ASC碼必相等
var pattern = /(\w)\1*/g;//全域匹配相鄰重複。必須全域匹配(沒有g,匹配一次就結束)。
var ans = s.match(pattern);
console.log(ans);
ans.sort(function(a, b) {//比較子看參數a-b的結果,為正升序,負就降序(不能加括弧,傳入sort中的是一個回呼函數,
將一個函數體作為參數傳入另一個函數中反覆使用;加括弧表示傳入的僅僅一個函數執行的傳回值)
        return a.length < b.length;//長度降序
// return b.length-a.length;//長度降序
});
console.log(ans);
console.log(ans[0][0] + ‘: ‘ + ans[0].length);

</script>
【正在看本人部落格的這位童鞋,我看你氣度不凡,談吐間隱隱有王者之氣,日後必有一番作為!下面有個“頂”字,你就順手把它點了吧!

當然也可以“關注”和“收藏”,但我更希望大家能發表評論、互動交流。大家一起探討學習,效率是不是會更高呢?(要先登入部落格園帳號哦 )】

【總結】【空思想一】字串或數組中重複字元及次數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.