Как правильно прописать цикл?

Есть строка list, в котором несколько item, пишу цикл переборки каждого item и добавляю его в массив:
while (list.indexOf('<Item>') != -1) {
  const newStr = str.replace(new RegExp(`.*?<Item>(.*)`), '$1');
  const result = newStr.replace(new RegExp(`</Item>.*`), '');
  items.set(`Item${i}`, result);
  i++;
}

Ошибка:
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

Как правильно прописать цикл, чтобы не было ошибки?
  • Вопрос задан
  • 233 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ragq1991
У Вас происходит переполнение памяти за счет зацикливания. Ваш цикл работает так: пока находится вхождение в строке list делай то-то и то-то, но строка list при этом не изменяется, и Ваш цикл пытается раотать вечно находя снова и снова первое вхождение. Вам необходимо внутри цикла прописывать заумену/удаление найденного вхождения в строке list что бы while искал следующее вхождение и в конце-концов вернул значение -1, то есть вхождений не найдено.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы