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;
...
編集:ただ、物事をクリアします。これはChrome 54+でもうまくいきますが、他のプラットフォームや古いプラットフォームではこれが気に入らないかどうかは気になります。
しかし、変数テストが使用されることはありませんでしょう。不要な変数の割り当てを追加するだけではないでしょうか? –
あなたのしたことをちょうど詳しく見直してください。三項内で変数を設定するのは一般的ではなく、通常は 'fillColor'に単一の値を返します。そして、' strokeColor'のために別の文があります。それは実際にあなたがそれを持っている方法で動作しますか? –
はい。私の開発マシンのChromeでうまく動作します。三項連鎖の前に二つの色を宣言し、これらの色を三項色の後のオブジェクトに割り当てます。私は検査の警告を心配しています。 –