Как правильно прописать цикл? Есть строка list, в котором несколько item, пишу цикл переборки каждого item и добавляю его в массив:while (list.indexOf('') != -1) { const newStr = str.replace(new RegExp(`.*?(.*)`), '$1'); const result = newStr.replace(new RegExp(`.*`), ''); items.set(`Item${i}`, result); i++; } Ошибка:FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory Как правильно прописать цикл, чтобы не было ошибки?

23 Фев 2023 в 19:52
62 +1
0
Ответы
1

Прежде всего, проблема может быть вызвана тем, что вы не обновляете исходную строку str после каждой итерации цикла. Вам нужно каждый раз обновлять str с учетом того, что уже найденные элементы <Item> будут удалены.

Подправленный код может выглядеть примерно так:

let i = 0;
while (str.indexOf('<Item>') !== -1) {
const start = str.indexOf('<Item>');
const end = str.indexOf('</Item>') + 7;
const result = str.slice(start, end)
items.set(`Item${i}`, result);
str = str.slice(end); // обновляем строку, удаляя найденный элемент
i++;
}

В этом коде после каждой итерации мы обновляем исходную строку str, чтобы исключить уже найденный элемент <Item>. Также мы используем методы indexOf и slice для получения подстроки с элементом <Item>.

16 Апр в 16:37
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 654 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир