I'm a new developer and got some questions from a test this week and coundn't find a way to solve this one. Any ideas?
The problem I believe is to sort a Javascript string which you have to convert the letters in a row to a new string which adds the times the letter is reapeated to the string; example:
For the string = 'AAABBBBCCX9999!!!!!!**'
it should return string = '3A4B2CX496!2*'
I tried some strings and arrays methods but didn't come close. I'm not in a hurry since the test is gone. But would be fun see it resolved; thanks everyone!
I'm still learning so thank you all for your answers and feedback about how to use stack overflow.
It works by matching on the string for all sequences of consecutive characters, giving you an array of each group of consecutive characters, which are then each mapped to a new string of the group's length and the first character put together (AAA
becomes 3A
('AAA'.length + 'AAA'[0]
)). Then each string is glued back together again with .join('')
.
const seq = 'AAABBBBCCX9999!!!!!!**'
.match(/(.)\1*/g).map(s => s.length + s[0]).join('');
console.log(seq);