2016-04-24 46 views
2

我嘗試增加的可變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 ...

什麼是做到這一點的最簡單和efficientest方式嗎?

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

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

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

} 

setInterval(count, 1000); 
+1

[檢查這個演示](https://jsfiddle.net/tusharj/dwu2ghuj/) – Tushar

回答

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

你必須存儲計數方向作爲國家的一部分,除了目前一些知道往哪個方向計數時valuem是在1和9之間。

1

我想有人可以簡化它更多隻是使用帶有偏移量的。這樣整個計算就可以在沒有任何if語句的情況下在一行中完成。

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