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