2011-06-20 16 views
1

どのようにして異なる番号間のステップ数をカウントできますか。Javascript数ステップ数

私は数値を取り、その数値でコードスニペットを実行するメソッドを持っています。私は数が他の2つのステップのすぐ隣の数字か、3つのステップか、4つのステップの上か下かどうかを調べる必要があります。

Ex。私はメソッドに1を送信します。送信された次の番号は4です。次に、1つ以上のステップがあるかどうかを調べる必要があります。この場合、1を超える3つのステップが結果になります。

手がかりはありますか?

+3

ああを中断してしまいましたか? 。 –

+4

私は '4 - 1'はあなたが何をしているのかと思います。 – pimvdb

答えて

7

あなたはクロージャと関数を使用することができます。

var value = (function() { 
    var previousValue = null; 
    return function(id) { 
     if (previousValue !== null) { 
      if(previousValue >= id) { 
       alert("Difference: -" + (previousValue - id)); 
      } 
      else alert("Difference: +" + (id - previousValue)); 
     } 
    previousValue = id; 
    }; 
})(); 

は、例えば、フィドルhereを参照してください。

+0

チャームのように働いています!あなたの時間と助けてくれてありがとう! – Tobias

1

単純な減算!

var stepx = 1 
var stepy = 4 
var diff = stepy - stepx 
alert (diff) 
+1

これは実際に '-3'です。 – pimvdb

+0

@pimvdbもちろん、それは更新されています(本当にオッズはありません) – Blowsie

0

負のステップのための追加修正

var previousNumber = 0; 

    function countSteps(number) { 
     var result = (number - previousNumber); 
     previousNumber = number; 
     return (result<0) ? result*-1 : result; 
    } 
0

申し訳ありませんが引く...

<html> 
<head> 
<script> 
var cnt=""; 
function countAndSave(num) { 
    var text = (cnt==="")?num:num+":"+Math.abs(num-cnt)+"/"+cnt 
    cnt=num; 
    return text 
} 
window.onload=function() { 
    document.getElementById("output").innerHTML +="<br />"+countAndSave(1); 
    document.getElementById("output").innerHTML +="<br />"+countAndSave(3); 
    document.getElementById("output").innerHTML +="<br />"+countAndSave(4); 
    document.getElementById("output").innerHTML +="<br />"+countAndSave(1); 
    document.getElementById("output").innerHTML +="<br />"+countAndSave(2); 
    document.getElementById("output").innerHTML +="<br />"+countAndSave(3); 
} 
</script> 
</head> 
<body> 
<div id="output"></div> 
</body> 
</html> 
関連する問題