1. 程式人生 > >字串按重複次數及大小排序

字串按重複次數及大小排序

面試遇到一個問題,輸入一個字串將字串按重複次數多到少,數字順序小到大進行排序

sortStringByCount(argc){
        if (typeof(argc) !== "string" || argc.constructor !== String) {
//constructor 屬性返回所有 JavaScript 變數的建構函式
      return argc;
        }else{
          
      var dealtArgc = argc.split('').sort().join('');
//將字串分割輸出陣列,然後對陣列排序,再轉換成字串
      //  /(.)\1 這個匹配任意連續的字元,並把第一個獲取出來存放到集合裡
      var newStr = dealtArgc.match(/(.)\1{0,}/g).sort(function(a,b){
//match輸出的是陣列形式,然後用sort排序,最後用join轉成字串
          return b.length - a.length
      }).join('');
      return newStr;
        }
    }
sortStringByCount('2szz多大365.4ff大26.59.8小7ss1.23e64f825')
=> //....2222555666fffsss334488zz大大179e多撒

雖然不知道哪裡會用到,先列出來吧