J'utilise plusieurs opérateurs ternaires à la place des instructions case select.Inspection WebStorm sur l'expression virgule dans l'opérateur JavaScript ternaire
Cela fonctionne très bien à ma connaissance, mais je reçois maintenant beaucoup d'avertissements d'inspection de WebStorm me disant que les expressions de virgule pourraient être trop intelligentes et peuvent conduire à des bugs subtils. Il y a aussi des avertissements sur la valeur assignée qui n'a jamais été utilisée.
Est-ce l'utilisation correcte d'un opérateur ternaire ou dois-je utiliser quelque chose de différent pour être du bon côté?
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;
WebStorm ne l'aime pas beaucoup ...
Edit: Juste pour clarifier les choses. Cela fonctionne bien sur Chrome 54+, mais je suis préoccupé par le fait que d'autres plateformes plus anciennes ne l'apprécient pas.
Mais ne serait jamais utilisé le test variable. Ne serait-ce pas ajouter une allocation de variable inutile? –
Juste en revue ce que vous avez fait plus en détail. Il n'est pas courant de définir des variables à l'intérieur du ternaire, normalement, il renvoie une valeur unique à 'fillColor', et vous avez alors une autre instruction séparée pour' strokeColor'. Cela fonctionne-t-il réellement comme vous l'avez? –
Oui. cela fonctionne bien dans Chrome sur ma machine dev. Je déclare les deux couleurs avant la chaîne ternaire et j'attribue ensuite ces couleurs à un objet après le ternaire. Je suis juste préoccupé par l'avertissement d'inspection. –