2015-06-26 11 views
0

我希望能夠使用一個字符串作爲一個比較操作符(如==,>,<,< =,> =,<>,!=,!<,!>)有什麼方法可以在Javascript或jQuery中使用字符串作爲比較運算符嗎?

從本質上講,我「M解析字符串,看起來像這樣...

var my_string = "id==2"; 

我那麼這個字符串轉換成最終看起來像這樣的數組...

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

我再有像這樣的對象...

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

我希望能夠抓住從my_array我比較操作的字符串版本索引1處,並用它作爲以類似的方式,以這樣的比較操作...

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); 
} 

回答

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]); 
+0

是的,我認爲這很可能是唯一合理的解決方案...只是想確定之前,我做了它。 – Ricky

相關問題