将字符串中的重复字符减少到给定的最小值

Rk2*_*220 2 javascript string character duplicates

我在这里搞乱第一个问题:将重复的字符减少到所需的最小值,我正在寻找比我想出的更优雅的答案.它通过了测试,但很想知道其他解决方案.样本测试是:

reduceString('aaaabbbb', 2) 'aabb'  
reduceString('xaaabbbb', 2) 'xaabb' 
reduceString('aaaabbbb', 1) 'ab'    
reduceString('aaxxxaabbbb', 2)  'aaxxaabb'
Run Code Online (Sandbox Code Playgroud)

和我的解决方案(通过这些测试):

reduceString = function(str, amount) {
  var count = 0;
  var result = '';
  for (var i = 0; i < str.length; i++) {
    if (str[i] === str[i+1]) {
      count++;
      if (count < amount) {
        result += str[i];
      }
    } else {
      count = 0;
      result += str[i];
    } 
  };
  return result;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

只需使用正则表达式.

var reduceString = function (str, amount) {
    var re = new RegExp("(.)(?=\\1{" + amount + "})","g");
    return str.replace(re, "");
}
Run Code Online (Sandbox Code Playgroud)