I've written a function to turn a string such as 'aaazeeeee' into a new string of 'aaa z eeeee'
this is the code I've tried that works
const groupCharacters = signature => {
let newSignature = "", arr = [];
let result = [...signature].reduce((accumulator, element, index) => {
// check if last element in accumulator matches current element
if (accumulator[accumulator.length -1] !== element) {
// push accumulator into array
arr.push(accumulator);
// set newSignature as new element
newSignature = element;
} else {
// else add element to newSignature
newSignature = accumulator += element;
}
// if is last item, push to array
if (index === signature.length - 1) arr.push(element);
return newSignature;
})
return arr;
}
console.log(groupCharacters('aabaaaaa'));
how can I refactor it so that I don't need the new string or array? I've tried something like this
const groupCharacters = str => [...str].reduce((accumulator, element) => accumulator[accumulator.length - 1] !== element ? `${accumulator} ` : accumulator + element)
it outputs 'aaa '
how do I fix it or use something like map instead?