I'm making a code editor and chose a grid: two dimensional array, And a string. Then it can cross check the string and array to see if there is a bug somewhere. This is of course not efficient, but it keeps me sane.
The grid also makes it easy to render the text.
I don't understand? Strings in JS are immutable. There's no way to mutate them.
Using strings like this will thrash your garbage collection, especially with long lines. An array, or more interesting data structure, might be more sensible.
(only pursuing this because I'm interested in your project!)