Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中沿任意方向循环范围_Javascript_Modulus - Fatal编程技术网

在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