我正在创建一个函数来过滤我的 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/