增加值直到限制然后减少循环

时间:2016-04-24 12:41:57

标签: javascript loops for-loop while-loop

我尝试将变量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);

2 个答案:

答案 0 :(得分:5)

这样:



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);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="number"></div>
&#13;
&#13;
&#13;

除了当前数字之外,你必须将计数方向存储为状态的一部分,以便知道valuem在1到9之间的计数方向。

答案 1 :(得分:1)

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

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