2016-04-24 11 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

私は、remainderはオフセットあり。このようにして、if文を一切使用せずに計算全体を1行にまとめることができます。

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

関連する問題