#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. По крайней мере, именно такой смысл применения этих двух операторов ждет каждый программист работающий с чужим кодом.
Комментариев нет:
Отправить комментарий