по какой-то больной причине, мои идентификаторы productID [addIndex] = allProductIDs [lastProductFoundIndex + i]; вызывает мое приложение, чтобы спина в бесконечный цикл:Попытка добавить значения к массиву приводит к тому, что приложение вращается в бесконечный цикл
numberOfImagesToDisplay установлен в 4
if (state == "next")
{
for(var a = 0; a < numberOfImagesToDisplay; a++) {
alert("a=" + a + ", numImages=" + numberOfImagesToDisplay)
if (a > 0) { addIndex = productIDs.length + 1; }
alert("I'm in GetNextProductIDs() 1");
//var lastProductFoundIndex = $.inArray(lastProductID, allProductIDs);
//alert("I'm in GetNextProductIDs() 2");
if (lastProductIndex >= 0) {
alert("I'm in GetNextProductIDs() 3");
//productIDs[addIndex] = allProductIDs[lastProductFoundIndex + i];
}
}
}
Если я достаю эту линию, он движется дальше.
Обновление: Решено. lastProductIndex
не определен. Так что происходит, так это то, что он доберется туда, и цикл закончится, но это странно, потому что обратный вызов снова вызывался, когда он должен был закончиться. Чтобы метод обратного вызова продолжал вызывать этот метод, и этот метод заканчивался в этом месте, снова будет вызван метод обратного вызова, и поэтому у вас был бесконечный цикл.
Что вы подразумеваете под «вращением в бесконечный цикл»? В отладчике, что он делает? Он просто не возвращается? Возможно ли, что недопустимый индекс вызывает функцию для исключения? –
У вас есть возможность добавить еще код и удалить ошибки. Цикл for даже не работает (инициализирует a, но увеличивает i). lastProductIndex не определен нигде в этом фрагменте и т. д. –
Вы отправляете один вопрос после другого, пытаясь решить одну проблему. Попробуйте опубликовать весь код, объясните, что вы пытаетесь сделать, чтобы это было проще для всех участников. – SolutionYogi