1

我在 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(). 有任何想法吗?

4

1 回答 1

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 (??)
}
于 2012-05-23T16:41:51.347 回答