在javascript中沿任意方向循环范围
我正在寻找实现以下目标的简化方法: 在任意方向上循环通过范围在javascript中沿任意方向循环范围,javascript,modulus,Javascript,Modulus,我正在寻找实现以下目标的简化方法: 在任意方向上循环通过范围0到x,其中x是任意正数 以下是迄今为止我使用的模,但我想知道是否有办法进一步简化它 增加: v=(v+1)%total 减少: v=v?(v-1)%x:x-1递增伪码已经完全简化,但是,您可以通过以下两种方式之一简化递减逻辑: v = v ? v - 1 : x - 1 或 前者是有效的,因为您知道减量将永远不需要被调制到范围[0,x),但后一种方法是首选的,因为它避免了不必要的分支逻辑 但是请记住,作为一种边缘情况,如果x超过数字
0到x
,其中x是任意正数
以下是迄今为止我使用的模
,但我想知道是否有办法进一步简化它
增加:
v=(v+1)%total
减少:
v=v?(v-1)%x:x-1
递增伪码已经完全简化,但是,您可以通过以下两种方式之一简化递减逻辑:
v = v ? v - 1 : x - 1
或
前者是有效的,因为您知道减量将永远不需要被调制到范围[0,x)
,但后一种方法是首选的,因为它避免了不必要的分支逻辑
但是请记住,作为一种边缘情况,如果
x
超过数字的一半。MAX\u SAFE\u INTEGER
(2**53-1),第一种方法是唯一一种可以按预期工作的方法。啊,好的。当我键入我的时,编辑还没有显示出来。@PatrickRoberts如果你能将其作为答案来写,我可以接受它;)
v = (v + x - 1) % x