jQuery if instrucción con operador matemático variable

Así que estoy buscando algo similar a esta pregunta python if statement con operador matemático variable pero en jQuery / Javascript

Esencialmente algo así como

var one = "4"; var two = "6"; var op = "=="; if (one op two) { //do something } 

¿es posible?

Podrías definir muchas funciones binarias:

 var operators = { "==": function(a,b){return a==b;}, "< =": function(a,b){return a<=b;}, ">=": function(a,b){return a>=b;}, "< ": function(a,b){return a": function(a,b){return a>b;}, … }; var one = "4", two = "6", op = "=="; if (op in operators && operators[op](+one, +two)) { //do something } 

Si no desea generar un objeto tan grande y no tiene funciones complejas, también puede generarlas sobre la marcha (usando un poco de magia de eval ):

 var validOps = /^([!=<>]=|< |>)$/, operators = {}; function check(op, x, y) { if (arguments.length > 1) return check(op)(x, y); if (op in operators) return operators[op]; if (validOps.test(op)) return operators[op] = new Function("a","b","return a "+op+" b;"); return function(a, b){return false;}; } if (check("==", 4, 6)) { // do something } 

Puede usar eval () pero debería ser una cadena que podría evaluarse a javascript para obtener los resultados deseados.

Demo en vivo

 if (eval(one + op + two)) { //do something } 

Si tiene una operación (también conocida como función ) que le gustaría realizar en dos variables, entonces simplemente necesita definirla:

 var operations, a, b, op; operations = { '==': function (a, b) { return a == b; }, '&&': function (a, b) { return a && b; }, '||': function (a, b) { return a || b; } }; a = 4; b = 6; op = operations['==']; if (op(a, b)) { //do stuff } 

Necesitaba algo como esto recientemente y terminé escribiendo una función para analizar el operador.

Algo como:

 function checkLogic(one, op, two) { switch(op) { case '==': return one == two; // etc } } 

Puedes usar Eval para esto

  if(eval(one+op+two)){ //do something }