首页 > 解决方案 > 整数Javascript的锯齿波函数

问题描述

萨比人,我正在尝试编写将映射的函数

this -->    ...-5|-4|-3|-2|-1| 0| 1| 2| 3| 4| 5| 6| 7| 8| 9...
to this --> ... 3| 0| 1| 2| 3| 0| 1| 2| 3| 0| 1| 2| 3| 0| 1... 

理想情况下,如果我输入myFunc(-1,4)它将返回 3,第二个参数“4”是我想要循环的数字。

我发现模数运算符 (%) 是为正整数做的,但我需要它在所有整数中工作并且找不到解决方案。我也知道我需要的是锯齿离散波,所以我查看了维基百科,真的无法弄清楚。请帮忙。

标签: javascriptmathmoduluswavetriangular

解决方案


正如您所指出的,对于那些正数,这很简单:

x % 4

对于负数,您需要做的是将整条线向前移动为正数,然后是模数。试试这个,它适用于你想要的正面和负面:

(x % 4 + 4) % 4

推荐阅读