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

Есть строка 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

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

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

Похожие вопросы
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект
22 нояб. 2024, в 03:54
1500 руб./за проект