Я пытаюсь перебрать массив объектов jQuery, увеличивая или уменьшая на 1. Итак, для декрементирующей части я использую этот код:
var splitted_id = currentDiv.attr('id').split('_');
var indexOfDivToGo = parseInt(splitted_id[1]);
indexOfDivToGo = (indexOfDivToGo-1) % allDivs.length;
var divToGo = allDivs[indexOfDivToGo];
поэтому у меня есть 4 элемента с id:
div_0
div_1
div_2
div_3
Я ожидал, что он будет повторяться так же, как 3 - 2 - 1 - 0 - 3 - 2 - и т.д.
но он возвращает -1 после нуля, поэтому он застревает. Таким образом, он выполняет следующие действия:
3 - 2 - 1 - 0 - -1 - застрял
Я знаю, что могу исправить ошибку, изменив вторую строку моего кода на
indexOfDivToGo = (indexOfDivToGo-1 + allDivs.length) % allDivs.length;
но мне интересно, почему JavaScript не вычисляет отрицательные моды. Возможно, это поможет и другому кодеру.