(bool ? num1 : num2) - как сделать такое для операции сравнения > ?
Есть конструкция (bool ? num1 : num2) которая в зависимости от значения bool вставляет в выражение либо num1 либо num2, так вот:
можно ли сделать так чтоб в зависимости от значение bool производилась либо операция > либо < ? (т.е. либо меньше либо больше) (bool ? > : <) - такая штука не проходит никак ни с \ ни с " :write: через if получится гора дублированного кода на пол экрана, а такая штука очень бы помогла. |
(5 > 7) ? alert('true') : alert('false'); (5 < 9) ? alert('true') : alert('false'); |
9xakep, это не то совсем.
Надо bool = true; 5 (bool ? > : <) 7 чтоб получалось либо 5 < 7либо 5 > 7 |
Цитата:
var bool = true; alert(eval(5+(bool ? '>' : '<')+7)); Более путний вариант... var bool = true; alert(bool ? 5>7 : 5<7); |
Цитата:
|
Цитата:
|
Вариант в качестве прикола:
function lt(a,b) { return a<b; } function gt(a,b) { return a>b; } var bool = true; alert( ( bool ? gt : lt )( 5, 7 ) ); |
Цитата:
|
Если так хочется странного то вот
function fn(cond, x, y){ return [function(a,b){return a<b;}, function(a,b){return a>b;}][+cond](x,y); } alert(fn(confirm("Да?"), +prompt("x"), +prompt("y"))); |
Часовой пояс GMT +3, время: 09:34. |