Il modulo, o quoto (insomma, il resto di una divisione) è una freccia indispensabile nella faretra di ogni programmatore. Viene da chiedersi perché, e il motivo è semplicissimo: i cicli.

Mettiamo che abbiamo 5 elementi, con indice 0-based (quindi gli elementi 0, 1, 2, 3 e 4). Ora, se vogliamo una situazione ciclica per cui dall'ultimo elemento torniamo al primo, possiamo fare calcoli complicati. Oppure usare il modulo e risolverci il problema.

 

Possiamo quindi continuare a sommare all'indice corrente e rimarremmo sempre entro i nostri cinque elementi.

Ma cosa succede se torniamo indietro, scendendo sotto zero? In Ruby abbiamo il comportamento corretto:

 

JavaScript invece questa cosa non l'apprezza.

 

Per raggirare questo bug, bisogna sommare il modulo al risultato del primo modulo e di nuovo fare il modulo del risultato. E magari crearsi una funzioncina comoda comoda.