У меня есть строка (содержимое HTML) и массив объектов позиции (индекса).
Длина строки составляет около 1,6 миллиона символов и около 700 объектов позиции.
е:
var content = "<html><body><div class="c1">this is some text</div>...."
var positions = [{start: 20, end: 25}, {start: 35, end: 37}....]
Мне нужно вставить открывающий тег span в каждую начальную позицию в строке и закрывающий тег span в каждую конечную позицию в строке.
Какой самый эффективный способ сделать это?
До сих пор я пытался отсортировать массив позиций в обратном порядке, затем циклически проходить и затем использовать replace / splice для вставки тегов, например:
content = content.slice(0, endPosition) + "</span>" + content.substring(endPosition);
content = content.slice(0, startPosition) + "<span>" + content.slice(startPosition);
(Обратите внимание, как я начал цикл с конца, чтобы не перепутать начальную / конечную позиции).
Но это занимает около 3 секунд, что мне кажется медленным и неэффективным.
Какой более эффективный способ сделать это?