有没有办法在Javascript或jQuery中使用字符串作为比较运算符?

时间:2015-06-26 15:54:57

标签: javascript jquery

我希望能够使用字符串作为比较运算符(例如==,>,<,< =,> =,<>,!=,!<,!> ;)

基本上,我正在解析一个看起来像这样的字符串......

var my_string = "id==2";

然后我将此字符串转换为最终看起来像这样的数组......

var my_array = ["id", "==", "2"];

然后我有一个像这样的对象......

var my_obj = { id: 2, name: "My Object" };

我希望能够从索引1的my_array中获取我的比较运算符的字符串版本,并以与此类似的方式将其用作比较运算符...

if(my_array[0] in my_obj)
{
    var object_value = my_obj[my_array[0]];
    var is_true = PreformComparison(my_array[2], my_array[1], object_value);
}

1 个答案:

答案 0 :(得分:3)

假设您不想要像eval这样的慢速技巧,最好的解决方案是拥有一个功能图:

var funs = {
    '==':function(a,b){ return a==b },
    '>':function(a,b){ return a>b },
    ...
}

然后您可以这样称呼它:

var is_true = funs[my_array[1]](object_value, my_array[2]);