У меня есть следующая загадка: у меня есть массив пар индексов строки, в которые должен быть вставлен один символ (третий элемент в подмассивах) (обратите внимание, что эти пары могут быть дубликатами), например,
let arr = [[0, 6, "7"], [0, 6, "h"], [2, 10, "2"], [12, 17, "j"]];
let my_string = "This is a very important string";
for (let i = 0; i < arr.length; i++) {
// magic code
}
// => my_string now equals "7hth2is i7hs a 2vejry imjportant string";
Я не могу просто вставить символ в каждый индекс, потому что следующая пара индексов в массиве устареет из-за того, что предыдущая пара индексов изменила строку и, таким образом, вызвала ее иметь новые индексы для каждого символа.
Я также попытался нарезать строку на основе пар индексов (используя их в качестве начального и конечного индексов) и вставить символы в эти подстроки, прежде чем снова объединить их все вместе, но проблема в том, что если две пары индексов перекрываются, то дублируются части исходной строки.
ПРИМЕЧАНИЕ : массив сортируется в порядке от наименьшего второго индекса в паре к наибольшему, как показано выше. Это можно изменить. Однако массив всегда будет содержать пары индексов, т. Е. Я не могу сгладить массив только по индексам, поскольку третьим элементом массивов является символ, который я хочу вставить.
Еще одна вещь, которую я пробовал, шла из конец массива пар индексов к началу, но опять же тот факт, что пары индексов могут перекрываться, означает, что это не работает.
Как бы я вставил символы в каждом индексе в массив пар пар индекса?
Заранее благодарим за любую помощь.