Let’s say we have the following strings:
const str1 = 'aabbcc';
const str2 = 'aabbccaaddaaaaeeff';
I need to split them in order to obtain the following result:
mySplitFunction(str1, 'aa')//<--- ['aa','bbcc']
mySplitFunction(str1, 'bb')//<--- ['aa','bb', 'cc']
mySplitFunction(str2, 'aa')//<--- ['aa','bbcc', 'aa','dd', 'aa','aa', 'eeff']
mySplitFunction(str2, 'dd')//<--- ['aabbccaa','dd', 'aaaaeeff']
How would you do it?
>Solution :
You could take the separator in parenteses and filter the result to omit empty strings.
const
split = (string, separator) => string
.split(new RegExp(`(${separator})`))
.filter(Boolean),
str1 = 'aabbcc',
str2 = 'aabbccaaddaaaaeeff';
console.log(...split(str1, 'aa')); // ['aa','bbcc']
console.log(...split(str1, 'bb')); // ['aa','bb', 'cc']
console.log(...split(str2, 'aa')); // ['aa','bbcc', 'aa','dd', 'aa','aa', 'eeff']
console.log(...split(str2, 'dd')); // ['aabbccaa','dd', 'aaaaeeff']