La siguiente función funciona bien con declaraciones if, quiero la misma funcionalidad usando declaraciones sin condición.
Hello(x){ If(x<0){ Console.log("greater"); }Else{ Console.log("smaller"); } }; Hello(1); Hello(-1);Podrías usar un Objeto pero es extraño. Una declaración if...else o su forma ternaria más corta transmite más claramente la lógica en juego que siempre es preferible.
function Hello(x) { const lt = { true: "smaller", false: "greater" }; console.log(lt[x < 0]); }; Hello(1); Hello(-1);Esto es probablemente una estupidez y podría ser demasiado específico para su ejemplo, pero...:
const hello = (x) => { const lt = x < 0; console.log("greater".repeat(lt) + "smaller".repeat(1 - lt)); }; hello(-1); hello(1);Tomando prestado del comentario de @Teemu, algo un poco más flexible podría ser:
const if_else = (cond_fn, if_fn, else_fn = (x) => x) => [else_fn, if_fn][+cond_fn()](); const hello = (x) => if_else( () => x < 0, () => console.log('greater'), () => console.log('smaller') ); hello(-1); hello(1);@Teemu explicó cómo hacerlo sin bifurcar , y hay momentos en los que eso puede ser beneficioso (ejemplo: ¿Por qué es más rápido procesar una matriz ordenada que procesar una matriz no ordenada? ).
function hello(x) { console.log(['greater', 'smaller'][+(x < 0)]); } hello(1); hello(-1);pero, por definición, no puede lograr un comportamiento basado en una condición sin un condicional .