jQuery如果语句与variablesmath运算符

所以我正在寻找类似于这个问题的python if语句与variablesmath运算符,但在jQuery / Javascript中

基本上类似

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

这可能吗?

你可以定义很多二元函数:

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

如果你不想生成如此庞大的对象并且没有复杂的function,那么你也可以在运行中生成它们(使用一些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 } 

你可以使用eval(),但它应该是一个string,可以评估为JavaScript来获得所需的结果。

现场演示

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

如果你有一个操作(也称为函数 ),你想要在两个variables上执行,那么你只需要定义它:

 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 } 

我最近需要这样的东西,最后写了一个函数来parsing操作符。

就像是:

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

你可以使用这个Eval

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