2011-10-18 76 views
1

這些可能在JavaScript中?JavaScript變量運算符

我有這樣的事情:

var op1 = "<"; 
var op2 = ">"; 

if (x op1 xval && y op2 yval) { 
console.log('yay'); 
} 

基本上我需要用戶輸入的操作,它從一個選擇框來。

回答

2

不是直接的,但你可以創建這樣一個功能:

if (operate(op1, x, xval) && operate(op2, x, xval)) { 
    console.log('yay'); 
} 
function operate(operator, x, y) { 
    switch(operator) { 
     case '<': 
      return x < y; 
    } 
} 
+0

我喜歡這個解決方案,聰明 – texasCode

0

這不是很好,但可能:

var op1 = "<"; 
var op2 = ">"; 

if (eval("x"+op1+xval+" && y"+op2+yval)) { 
    console.log('yay'); 
} 

也看到我的jsfiddle
我寧願bobbymcr回答。

4

那是不可能的,但這是:

var operators = 
{ 
    '<': function(a, b) { return a < b; }, 
    '>': function(a, b) { return a > b; }, 
    /* ... etc. ... */ 
}; 

/* ... */ 

var op1 = '<'; 
var op2 = '>'; 
if (operators[op1](a, b) && operators[op2](c, d)) 
{ 
    /* ... */ 
} 
0

你可以做這樣的事情。

var OpMap = { 
      '>': function (a,b) return a>b;}, 
      '<': function (a,b) return a<b;} 
} 

if (OpMap[op1](x,xval) && OpMap[op2](y,yval)) { 
console.log('yay'); 
}