我在JS中有一个函数来比较两个整数和一个任意运算符:
function compare(n1, n2, crit){
var operator;
switch (crit) {
case 'GT':
operator = '>';
break;
case 'GE':
operator = '>=';
break;
case 'EQ':
operator = '==';
break;
case 'LE':
operator = '<=';
break;
case 'LT':
operator = '<';
break;
}
return eval(n1 + operator + n2);
}
我正在寻找比连接和使用可怕的eval()
更优雅的方法。有什么想法吗?
答案 0 :(得分:4)
为什么不重新格式化你的功能呢?
function compare(n1, n2, crit){
if (crit == 'GT') return n1 > n2;
if (crit == 'GE') return n1 >= n2;
if (crit == 'EQ') return n1 == n2;
if (crit == 'LE') return n1 <= n2;
if (crit == 'LT') return n1 < n2;
return false; // default behavior (??)
}