javascript - 将字符串转换为比较运算符。可能还是不可能? JavaScript

标签 javascript

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

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

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

        }
    }

}

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

filter(anArray,"age",">",10)

是否可以在 if 语句中将字符串比较运算符转换为实际运算符?

最佳答案

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

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)) {

        }
    }
}

关于javascript - 将字符串转换为比较运算符。可能还是不可能? JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31082224/

相关文章:

javascript - 如何高效地编写 Javascript 代码

javascript - 为 R DT 编写代码时出现问题,该 R DT 总结了具有可折叠子行的多项研究的结果

javascript - Bootstrap日期选择器关闭函数

javascript - 在 Backbone.js 中扩展模型父类(super class)的默认值

javascript - 旧的 JavaScript 函数使浏览器崩溃

javascript - RxJS 如何从两个 promise 中获取第一个不为空的值

javascript - 如何在函数中调用变量?

javascript - Sprite 向某一特定点移动的方式

javascript - Amazon s3 Javascript-请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - 内联函数将输入限制为最多 2 位小数的数字?