Doppelte Zeichen in einer Zeichenfolge auf ein bestimmtes Minimum reduzieren

Ich habe hier mit der ersten Frage rumgespielt: Reduzieren Sie doppelte Zeichen auf ein gewünschtes Minimum und suche elegantere Antworten als das, was ich mir ausgedacht habe. Es besteht den Test, ist aber neugierig auf andere Lösungen. Die Beispieltests sind:

reduceString('aaaabbbb', 2) 'aabb'  
reduceString('xaaabbbb', 2) 'xaabb' 
reduceString('aaaabbbb', 1) 'ab'    
reduceString('aaxxxaabbbb', 2)  'aaxxaabb'

und meine Lösung (die diese Tests besteht):

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;
}

Antworten auf die Frage(10)

Ihre Antwort auf die Frage