Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

Условия в JavaScript (if, тернарный оператор или что-то еще?)

#style_guide #javascript


Есть ли возможность прописать условия более элегантно:
if (x2 > x1) {
  x = x1,
  w = x2 - x1;
} else {
  x = x2,
  w = x1 - x2;
}
if (y2 > y1) {
  y = y1,
  h = y2 - y1;
} else {
  y = y2,
  h = y1 - y2;
}
    


Ответы

Ответ 1



x = Math.min(x1, x2); w = Math.max(x1, x2) - x; y = Math.min(y1, y2); h = Math.max(y1, y2) - y;

Ответ 2



Не уверен, стоит ли это считать более элегантным способом, но можно так: [x, w] = (x2 > x1)? [x1, x2 - x1] : [x2, x1 - x2];

Ответ 3



Как то так :) : (x2 > x1 ? function(){x = x1; w = x2 - x1;} : function(){x = x2; w = x1 - x2;})(); (y2 > y1 ? function(){y = y1; h = y2 - y1;} : function(){x = y2; h = y1 - y2;})();

Ответ 4



Тернарный оператор, как правило, применяется для условных вычислений с возвратом результата. a = b>0?b:c; В остальных случаях для независимых блоков кода - обычный if. По крайней мере, именно такой смысл применения этих двух операторов ждет каждый программист работающий с чужим кодом.

Комментариев нет:

Отправить комментарий