在EXTJS中的变量中存储比较/布尔运算符

在EXTJS中的变量中存储比较/布尔运算符,extjs,extjs4.2,comparison-operators,Extjs,Extjs4.2,Comparison Operators,有没有办法将运算符作为变量存储在extjs中?我需要这个来过滤。我知道filter中的操作符配置,但由于太复杂的原因,我不得不改用filterFn 因此,假设我有这个过滤器对象: filterObj.property = 'price'; filterObj.value = input; filterObj.operator = opVar; filters.push(filterObj); store.addFilter(filters); 在这里,我可以将一个类似etc的字符串作为opV

有没有办法将运算符作为变量存储在extjs中?我需要这个来过滤。我知道filter中的操作符配置,但由于太复杂的原因,我不得不改用filterFn

因此,假设我有这个过滤器对象:

filterObj.property = 'price';
filterObj.value = input;
filterObj.operator = opVar;

filters.push(filterObj);
store.addFilter(filters);
在这里,我可以将一个类似etc的字符串作为opVar传递,它将变成一个比较运算符。这很好用

我需要的是filterFn中的等效项。如何在那里使用opVar


作为最后的手段,我想我必须使用开关。还有其他想法吗?

这就是我最后使用的,使用jrajav给出的答案

正如您所建议的,这里有一个filterFn,因为逻辑太复杂,无法进行简单的比较。您需要自己执行检查。或者,可以在过滤值之前对其进行变换。
var operate = {
    '>': 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 ;},
    '=': function(a,b) {return a==b ;},
    '!=': function(a,b) {return a!=b ;},
    '<>': function(a,b) {return a!=b ;}
};
var greater = '>';
var a= 10;
var b = someValue;
operate[greater](a,b);