У меня есть код, похожий на эти записи фильтрации в массиве объектов:
var filterRegex = new RegExp(".*blah.*","ig");
if (filterRegex.test(events[i].thing) && events[i].show) {
console.log("SUCCESS: filtering thing " + i + " " + events[i].thing);
events[i].show = false;
numevents--;
}
Я получаю несогласованные результаты с этим условием if (проверка с Firebug, оба условия истинны индивидуально, но иногда все выражение оценивается как false). ОДНАКО, если я на самом деле помещаю alert()
, вызываемый внутри этого оператора if (например, строка 4), он становится согласованным, и я получаю результат, который я хочу.
Вы можете увидеть что-то не так с этой логикой и сказать мне, почему он не всегда производит то, что ожидается?