我们如何在没有条件的情况下递增然后递减计数器?

luk3thomas

我正在寻找一种聪明的方法来增加然后减少计数器变量。我希望计数器变量以较低的值开始,并朝较高的值递增。一旦达到较高的值,计数器就会递减,直到回到较低的值。一旦达到较低的值,计数器将再次增加至较高的值...我想您已经明白了。

我正在一个画布动画工作,我想在不使用if或进行其他条件测试的情况下运用一些技巧

这是处理计数器变量的条件逻辑:

incrementing = true

foo = ->

    length += 1 if incrementing
    length -= 1 if not incrementing

    incrementing = false if length > 100
    incrementing = true  if length < 1

最初,我认为我可以使用模数。但是,模除法只会将计数器重置为较低的值-计数器达到最大值后不会递减。

 0 % 10 =  0
 1 % 10 =  1
 2 % 10 =  2
 3 % 10 =  3
 4 % 10 =  4
 5 % 10 =  5
 6 % 10 =  6
 7 % 10 =  7
 8 % 10 =  8
 9 % 10 =  9
10 % 10 =  0
11 % 10 =  1
12 % 10 =  2
13 % 10 =  3

我确定必须有一种方法,而无需使用条件测试。假设最低值为0,最高值为10,则该方法应输出以下内容。

? =  0
? =  1
? =  2
? =  3
? =  4
? =  5
? =  6
? =  7
? =  8
? =  9
? =  8
? =  7
? =  6
? =  5
谢谢

首先,让我们看一些浪潮!

你好波浪!

波的类型

您能确定一个满足您需求的产品吗?

如果您猜到了三角波,那是对的!

三角波以均匀的斜率振荡,直到达到最小值或最大值,然后将斜率反转。

这里有两件事要解决:

  • 函数的起点将从波浪的中间开始
  • 从波振荡x-x

我们想从开始输出,0只包含正值

function triangle(t, a) {
  return Math.abs(((t + a/2) % a) - a/2);
}

让我们尝试一下

for (var i=0; i<20; i++) {
  console.log(i, triangle(i, 10));
}

输出

0 0
1 1
2 2
3 3
4 4
5 5
6 4
7 3
8 2
9 1
10 0
11 1
12 2
13 3
14 4
15 5
16 4
17 3
18 2
19 1

所以,当我们调用triangle(i, 10)10是“月经”。这告诉我们在重复功能之前我们要在功能中执行多少步骤。

一段6会给我们6个值,0, 1, 2, 3, 2, 1

的一段时间4会给我们4个值,0, 1, 2, 1依此类推

如果您要出发0-9,则需要一段20

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Codeigniter中如何在没有条件的情况下选择联接多个表?

来自分类Dev

如何在没有条件格式的情况下复制/粘贴?

来自分类Dev

我们如何在没有互联网的情况下索赔司机?

来自分类Dev

如何在没有lua的情况下确保Redis密钥的100%有条件更新?

来自分类Dev

我如何在没有警告的情况下为python熊猫设置有条件的特定值?

来自分类Dev

我们如何在android中有条件资源值?

来自分类Dev

Spring,JPA和Hibernate-如何在没有并发问题的情况下增加计数器

来自分类Dev

如何在有条件的情况下减去熊猫中的两列

来自分类Dev

如何在有条件的情况下使用ConcatMap进行多个API调用

来自分类Dev

如何在有条件的情况下导出到CSV?

来自分类Dev

如何在有条件的情况下将变量传递给awk命令?

来自分类Dev

如何在有条件的情况下删除SQL Server中的重复行?

来自分类Dev

如何在有条件的情况下替换冲突(对于SQLite)?

来自分类Dev

如何在给定具有条件的数据帧的情况下改变列?

来自分类Dev

如何在没有蛮力的情况下找到矩阵中元素的数量?我们可以做到吗?

来自分类Dev

我们如何在没有用户输入的情况下创建和关闭UIAlertController?(迅速)

来自分类Dev

SML:如何在没有附加参数的情况下在SML中模拟计数器

来自分类Dev

两张表的联合,并在何处有条件的情况下进行计数

来自分类Dev

我们如何在没有任何JavaScript的情况下在QML中声明枚举?

来自分类Dev

如何在没有for循环的情况下为给定组有条件地分配中值?

来自分类Dev

MASM 是否可以在没有条件语句的情况下创建递归函数?

来自分类Dev

什么是事件发射器和事件发射器服务。我们如何在没有@output和@input的情况下使用事件发射器?

来自分类Dev

如何在有条件的情况下使用RemoveAll删除列表中的多个项目?

来自分类Dev

如何在有条件的情况下将指针强制转换为基本类型的指针

来自分类Dev

如何在有条件的情况下让表格单元执行两种不同的筛选?

来自分类Dev

如何在有条件的情况下将一个spark dataframe列分为两列

来自分类Dev

如何在有条件的情况下让表格单元执行两种不同的筛选?

来自分类Dev

Webpack:我们如何“有条件地”使用插件?

来自分类Dev

在有条件的情况下禁用悬停

Related 相关文章

  1. 1

    Codeigniter中如何在没有条件的情况下选择联接多个表?

  2. 2

    如何在没有条件格式的情况下复制/粘贴?

  3. 3

    我们如何在没有互联网的情况下索赔司机?

  4. 4

    如何在没有lua的情况下确保Redis密钥的100%有条件更新?

  5. 5

    我如何在没有警告的情况下为python熊猫设置有条件的特定值?

  6. 6

    我们如何在android中有条件资源值?

  7. 7

    Spring,JPA和Hibernate-如何在没有并发问题的情况下增加计数器

  8. 8

    如何在有条件的情况下减去熊猫中的两列

  9. 9

    如何在有条件的情况下使用ConcatMap进行多个API调用

  10. 10

    如何在有条件的情况下导出到CSV?

  11. 11

    如何在有条件的情况下将变量传递给awk命令?

  12. 12

    如何在有条件的情况下删除SQL Server中的重复行?

  13. 13

    如何在有条件的情况下替换冲突(对于SQLite)?

  14. 14

    如何在给定具有条件的数据帧的情况下改变列?

  15. 15

    如何在没有蛮力的情况下找到矩阵中元素的数量?我们可以做到吗?

  16. 16

    我们如何在没有用户输入的情况下创建和关闭UIAlertController?(迅速)

  17. 17

    SML:如何在没有附加参数的情况下在SML中模拟计数器

  18. 18

    两张表的联合,并在何处有条件的情况下进行计数

  19. 19

    我们如何在没有任何JavaScript的情况下在QML中声明枚举?

  20. 20

    如何在没有for循环的情况下为给定组有条件地分配中值?

  21. 21

    MASM 是否可以在没有条件语句的情况下创建递归函数?

  22. 22

    什么是事件发射器和事件发射器服务。我们如何在没有@output和@input的情况下使用事件发射器?

  23. 23

    如何在有条件的情况下使用RemoveAll删除列表中的多个项目?

  24. 24

    如何在有条件的情况下将指针强制转换为基本类型的指针

  25. 25

    如何在有条件的情况下让表格单元执行两种不同的筛选?

  26. 26

    如何在有条件的情况下将一个spark dataframe列分为两列

  27. 27

    如何在有条件的情况下让表格单元执行两种不同的筛选?

  28. 28

    Webpack:我们如何“有条件地”使用插件?

  29. 29

    在有条件的情况下禁用悬停

热门标签

归档