我正在尝试迭代一个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 - 等等。
但实际上,在 0 后它返回了 -1,因此它被卡住了。所以它的迭代顺序是:
3 - 2 - 1 - 0 - -1 - 卡住了
我知道我可以通过更改代码的第二行来修复它:
indexOfDivToGo = (indexOfDivToGo-1 + allDivs.length) % allDivs.length;
但我想知道为什么JavaScript不会计算负数的模数。也许这对其他程序员也有帮助。