これらはJavascriptで可能ですか?JavaScript変数演算子
私はこのような何かを持っている:
var op1 = "<";
var op2 = ">";
if (x op1 xval && y op2 yval) {
console.log('yay');
}
基本的に私がユーザの入力にオペレータ、そのは、選択ボックスから来るが必要です。
直接これらはJavascriptで可能ですか?JavaScript変数演算子
私はこのような何かを持っている:
var op1 = "<";
var op2 = ">";
if (x op1 xval && y op2 yval) {
console.log('yay');
}
基本的に私がユーザの入力にオペレータ、そのは、選択ボックスから来るが必要です。
直接ない、しかし、あなたはこのように関数を作成することができます
if (operate(op1, x, xval) && operate(op2, x, xval)) {
console.log('yay');
}
function operate(operator, x, y) {
switch(operator) {
case '<':
return x < y;
}
}
それはいいが、ことはできません。
var op1 = "<";
var op2 = ">";
if (eval("x"+op1+xval+" && y"+op2+yval)) {
console.log('yay');
}
はまた、私jsfiddleを参照してください。
私はbobbymcrの答えを好むだろう。
ことはできませんが、これは次のとおりです。
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))
{
/* ... */
}
あなたはこのような何かを行うことができます。
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');
}
私はこの解決策が賢明です – texasCode