2011-10-18 13 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'); 
}