2016-11-03 10 views
0

Я использую довольно много тернарных операторов вместо операторов case case.Проверка WebStorm по выражению запятой в тернарном операторе JavaScript

Эти работы отлично подходят для моих лучших знаний, но теперь я получаю много предупреждений об инспекции от 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; 

WebStorm не нравится это много ...

enter image description here

Edit: Просто чтобы убрать вещи. Это хорошо работает на Chrome 54+, но я обеспокоен тем, могут ли другие и более старые платформы не понравиться.

ответ

0

Вам необходимо установить некоторые переменные в результате:

var test = u_avg < ... 
+0

Но тест переменная никогда не будет использоваться. Разве это не просто добавит ненужное распределение переменных? –

+0

Просто просмотрите, что вы сделали более подробно. Не часто задавать переменные внутри тернарной точки, обычно она возвращает одно значение «fillColor», а затем у вас будет другой отдельный оператор для 'strokeColor'. Действительно ли он работает так, как у вас есть? –

+0

Да. он отлично работает в Chrome на моей машине dev. Я объявляю два цвета перед тройной цепочкой, а затем присваиваю эти цвета объекту после тройного. Меня просто беспокоит предупреждение об инспекции. –

 Смежные вопросы

  • Нет связанных вопросов^_^