You can define many binary functions:
var operators = { "==": 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 one = "4", two = "6", op = "=="; if (op in operators && operators[op](+one, +two)) {
If you donβt want to create such a large object and donβt have complex functions, you can also generate them on the fly (using a bit of eval magic):
var validOps = /^([!=<>]=|<|>)$/, operators = {}; function check(op, x, y) { if (arguments.length > 1) return check(op)(x, y); if (op in operators) return operators[op]; if (validOps.test(op)) return operators[op] = new Function("a","b","return a "+op+" b;"); return function(a, b){return false;}; } if (check("==", 4, 6)) {
Bergi source share