与运算符连接数字以在javascript中进行比较

时间:2012-05-23 16:37:52

标签: javascript comparison eval

我在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()更优雅的方法。有什么想法吗?

1 个答案:

答案 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 (??)
}