A workaround for using negative numbers with JS's modulo operator

npm install mod-loop
4 downloads in the last week
15 downloads in the last month


JavaScript's modulo operator (%) doesn't handle negative numbers nicely - here's something general to work around the issue.

Benchmarks on jsperf can be found here. Thanks to shama and mikolalysenko for finding a faster method.


npm install mod-loop


require('mod-loop')(x, y)

Returns x % y, for both positive and negative and negative numbers.

var mod = require('mod-loop')

mod(+100, 10) // 0
mod(-100, 10) // 0
mod(-105, 10) // 5
mod(-102, 10) // 8
npm loves you