デビッド・スリーピング:
私はRGBAの範囲内プット4つの整数をその機能を持っています。(十進数ではない問題を行う)と言い換えると、それは、4つの整数を取り、8ビットの範囲(0〜255)の最初の3を置くプット0-1の範囲内の4番目の数。そして、それはその色にのfillStyleになります。(それは私が数字の上にランダムな数学演算を使用したいので、このすべてが機能して起こることが重要です)
ここで、コードは次のとおりです。
function FillColor(r,g,b,a){
if (r > 255){r = 255;}
if (g > 255){g = 255;}
if (b > 255){b = 255;}
if (a > 1){a = 1;}
if (r < 0){r = 0;}
if (g < 0){g = 0;}
if (b < 0){b = 0;}
if (a < 0){a = 0;}
ctx.fillStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")";
}
私の問題は、それが不必要に長く見え、それは主にちょうど自分自身を繰り返していることです。これを行うには良い方法はありますか?
Igmerロドリゲス:
あなたは三項演算子を使用することができます。
r = (r>255)? 255 :(r<0)?0 :r
例:
<html>
<script type="application/javascript">
function FillCOllor(r) {
r = (r > 255) ? 255 : (r < 0) ? 0 : r
console.log(r)
}
</script>
<body>
<button onclick="FillCOllor(-12)">click</button>
</body>
</html>