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