2016-11-03 5 views
0

select case文ではなく、かなり3つの演算子を使用しています。WebStormによる3進JavaScriptオペレータのコンマ式の検査

これらは私の最善の知識には問題ありませんが、カンマの表現があまりにも巧妙になり、微妙なバグにつながる可能性があるとWebStormから警告されています。また、決して使用されていない値についての警告もあります。

これは三元演算子の正しい使用ですか、または安全な側にするために別のものを使用すべきですか?

WebStormがたくさん好きではない
u_avg < siteColorArray[0] ? 
    (fillColor = '#FF6600', strokeColor = '#FF8C00') : 
    u_avg < siteColorArray[1] ? 
    (fillColor = '#FF8C00', strokeColor = '#FFB300') : 
     u_avg < siteColorArray[2] ? 
     (fillColor = '#FFB300', strokeColor = '#FFD900') : 
     u_avg < siteColorArray[3] ? 
      (fillColor = '#FFD900', strokeColor = '#FFFF00') : 
      u_avg < siteColorArray[4] ? 
      (fillColor = '#FFFF00', strokeColor = '#CDE30F') : 
      u_avg < siteColorArray[5] ? 
       (fillColor = '#CDE30F', strokeColor = '#9CC71E') : 
       u_avg < siteColorArray[6] ? 
       (fillColor = '#9CC71E', strokeColor = '#6AAA2D') : 
       u_avg < siteColorArray[7] ? 
        (fillColor = '#6AAA2D', strokeColor = '#388E3C') : 
        u_avg >= siteColorArray[7] ? 
        (fillColor = '#388E3C', strokeColor = '#2E7D32') : 
        null; 

...

enter image description here

編集:ただ、物事をクリアします。これはChrome 54+でもうまくいきますが、他のプラットフォームや古いプラットフォームではこれが気に入らないかどうかは気になります。

答えて

0

あなたは結果にいくつかの変数を設定する必要があります。

var test = u_avg < ... 
+0

しかし、変数テストが使用されることはありませんでしょう。不要な変数の割り当てを追加するだけではないでしょうか? –

+0

あなたのしたことをちょうど詳しく見直してください。三項内で変数を設定するのは一般的ではなく、通常は 'fillColor'に単一の値を返します。そして、' strokeColor'のために別の文があります。それは実際にあなたがそれを持っている方法で動作しますか? –

+0

はい。私の開発マシンのChromeでうまく動作します。三項連鎖の前に二つの色を宣言し、これらの色を三項色の後のオブジェクトに割り当てます。私は検査の警告を心配しています。 –

関連する問題