将字符串转换为比较运算符。可能与否?Javascript

Ter*_*how 2 javascript

我正在创建一个函数来过滤我的 javascript 对象。

function filter(array,filterName,filterCondition,filterParameter){

    for(var i=0; i< array.length;i++){
        if(array[i][filterName] -<convert FilterCondition here>- filterParameter){

        }
    }

}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想像这样使用它:

filter(anArray,"age",">",10)
Run Code Online (Sandbox Code Playgroud)

是否可以在我的 if 语句中将字符串比较运算符转换为真正的运算符?

cas*_*sln 5

例如,您可以像这样使用哈希:

function filter(array,filterName,filterCondition,filterParameter){
    var comparisonOperatorsHash = {
        '<': 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; },
        '===': function(a, b) { return a === b; },
    };

    var comparisonOperator = comparisonOperatorsHash[filterCondition];

    if (comparisonOperator === undefined) {
        // throw error here
    }

    for(var i=0; i< array.length;i++){
        if(comparisonOperator(array[i][filterName], filterParameter)) {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)