【问题标题】:increase value until limit then decrease loop增加值直到限制然后减少循环
【发布时间】:2016-08-17 19:42:02
【问题描述】:

我尝试将变量 valuem 的值从 0 增加到 10,如果 valuem 的值是 10,它应该减小直到值为 0,然后再次增加到 10,依此类推。

例如:0 1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 1 0 1 2 ...

最简单、最有效的方法是什么?

var valuem = 0;
$('#number').text(valuem);

function count() {
    valuem++;
    $('#number').text(valuem);

    if (valuem == 10) {
        valuem--;
        $('#number').text(valuem);
    }

}

setInterval(count, 1000);

【问题讨论】:

标签: javascript loops for-loop while-loop


【解决方案1】:

这边:

var valuem = 0, dir = 1;
$('#number').text(valuem);

function count() {
  valuem += dir;
  $('#number').text(valuem);
  if (valuem < 1) dir = 1;
  if (valuem > 9) dir = -1;
}

setInterval(count, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="number"></div>

valuem 介于 1 和 9 之间时,您必须将计数方向存储为状态的一部分,而不是当前数字,以了解计数方向。

【讨论】:

    【解决方案2】:

    我想可以通过使用带有偏移量的remainder 来简化它。这样整个计算就在一行中完成,没有任何 if 语句。

    var n = 0;
    setInterval(function() {
      number.innerHTML = 10 - Math.abs(n++ % 20 - 10);
    }, 500);
    &lt;h1 id="number"&gt;&lt;/h1&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-17
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多