JavascriptがRGBAの範囲で4つの整数を入れて

デビッド・スリーピング:

私は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>

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=30448&siteId=1