Reduzindo caracteres duplicados em uma sequência para um determinado mínimo

Eu estava brincando com a primeira pergunta aqui:Reduza os caracteres duplicados para o mínimo desejado e estou procurando respostas mais elegantes do que as que eu criei. Ele passa no teste, mas curioso para ver outras soluções. Os testes de amostra são:

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

e minha solução (que passa nesses testes):

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

questionAnswers(5)

yourAnswerToTheQuestion