2017-03-21 11 views
1

私は株価と3つの値を持っています。私は現在の株価が-3よりも大きくないかどうかをチェックしています。これは私のコード値を他の3つの値と比較して決定する方法

var price = parseFloat(1645.70) ; 

var suppourt1 = parseFloat(1649.32); 
var suppourt2 = parseFloat(1604.40); 
var suppourt3 = parseFloat(1559.36); 
var diff = price - suppourt1; 

if (diff >= -3 && diff <= 3) { 
    alert('yes'); 
} else { 
    alert('No'); 
} 
ここ

私だけsuppourt1をチェックしています。 suppourt2suppourt3を確認するにはどうすればよいですか?

これを達成するには、3をさらに追加する必要がありますか?if

これは私のバイオリンです:http://jsfiddle.net/cod7ceho/470/

答えて

2

あなたは3つの別々のif文を必要としませんが、少なくとも、すべての違いを確認するために、単一のifのステートメント内の3つの条件が必要になります。

しかし、絶対値を取得することによって、測定しようとする差異が-Xから+Xになると仮定すると、ロジックを簡単にすることができます。あなたは<=をチェックするだけです。このお試しください:あなたはリテラル値を提供しているとして、私は、これはちょうどあなたがあなたの質問を転写してきた方法が原因であると推測が最後に

var price = parseFloat(1645.70); 
 
var maxDelta = 3; 
 

 
var suppourt1 = parseFloat(1649.32); 
 
var suppourt2 = parseFloat(1604.40); 
 
var suppourt3 = parseFloat(1559.36); 
 
var diff1 = Math.abs(price - suppourt1); 
 
var diff2 = Math.abs(price - suppourt2); 
 
var diff3 = Math.abs(price - suppourt3); 
 

 
if (diff1 <= maxDelta && diff2 <= maxDelta && diff3 <= maxDelta) { 
 
    console.log('yes'); 
 
} else { 
 
    console.log('No'); 
 
}

を、parseFloat()の使用は、冗長です。

1

3つの変数を配列に格納することをお勧めします。

array = [value1, value2, value3]; 

し、それをループしてIFの操作を行います。

for (i = 0; i < array.length; i++) { 
    if (array[i] >=-3 && array[i] <=3) { 
    alert('yes'); 
    } else { 
    alert('No'); 
    } 
} 

だから、全体のコードは次のようになります。

var price = parseFloat(1645.70) ; 
var supportsArray = [1649.32, 1604.40, 1559.36]; 
var diff; 

for (i = 0; i < supportsArray.length; i++) { 
    diff = price - supportsArray[i]; 

    if (diff >=- 3 && diff <= 3) { 
     alert('yes'); 
     } else { 
     alert('No'); 
    } 
} 
関連する問題