У меня есть файл JavaScript с forEach, который имеет два регулярных выражения, которые будут запускаться в зависимости от if.Неважно, какое условие я ставлю первым.Одно регулярное выражение заменяет текущие значения свойств json, а другое - значения предыдущих итераций.
Я попытался переключить операторы if.Я удалил if
и попробовал регулярное выражение по одному.Неважно, что одно регулярное выражение, кажется, использует предыдущие циклы
stats.forEach( (stat) => {
if(display_detail) {
lsm.displayString = lsm.displayString.replace(/(\d{1,4})\s([_a-zA-Z][^\0]*)\s(\()()(\))/g, lsm.count + " $2 $3$4" + lsm.detail_array.join(',') + "$5");
} else {
lsm.displayString = lsm.displayString.replace(/(\d{1,4})\s([_a-zA-Z][^\0]*)/g, lsm.detail_array.join(',') + " $2")
}
});
элемент JSON
{ count: 2,
displayString: '1 POne (9)',
detail_array: [ 9, 14 ] }
После полного запуска, где я ожидаю детали (diplay_detail
), я ожидаю этогонапечатать как: 2 POne (9,14)
Я получаю 1 POne (9)
Но если я прогоню его через другое регулярное выражение, я получу то, что ожидал получить:
9,14 POne ()
Я уверен, что он запускает первый цикл, поскольку displayString, хранящаяся в json, показывает столько же.DisplayString начинается с
0 POne ()