用JavaScript压缩字符串

我们需要编写一个JavaScript函数,该函数接受一个可能包含一些连续重复字符的字符串。

该函数应该像这样压缩字符串-

'wwwaabbbb' -> 'w3a2b4'
'kkkkj' -> 'k4j'

并且如果压缩字符串的长度大于或等于原始字符串,则应返回原始字符串。

例如-

'aab'可以压缩为'a2b1',但是它的长度增加到4,所以我们的函数应该返回'aab'

示例

为此的代码将是-

const str1 = 'wwwaabbbb';
const str2 = 'kkkkj';
const str3 = 'aab';
const compressString = (str = '') => {
   let res = '';
   let count = 1;
   for(let i = 0; i < str.length; i++){
      let cur = str[i];
      let next = str[i + 1];
      if(cur === next){
         count++;
      }else{
         res += cur + String(count);
         count = 1;
      };
   }
   returnres.length<str.length? res : str;
};
console.log(compressString(str1));
console.log(compressString(str2));
console.log(compressString(str3));
输出结果

控制台中的输出将是-

3a2b4
k4j1
aab