Javascript 在jQuery中使用grep编写通用过滤器

Javascript 在jQuery中使用grep编写通用过滤器,javascript,jquery,Javascript,Jquery,有没有一种方法可以使下面的代码更加通用 var result = $.grep(myObjectArray, function(e){ return e.Prop1 == 'SomeVal'; }); 这就是我想做的 一个通用函数,它将接受myObjectArray(要筛选的对象数组)、Prop1(属性名)和SomeVal(要筛选的值)作为参数 我面临的问题是,我不知道如何在对象中找到PropertyName,因为它可以是任何东西 任何帮助都将不胜感激。要从对象获取属性,只需使用

有没有一种方法可以使下面的代码更加通用

var result = $.grep(myObjectArray, function(e){ 

    return e.Prop1 == 'SomeVal';

});
这就是我想做的

一个通用函数,它将接受
myObjectArray
(要筛选的对象数组)、
Prop1
(属性名)和
SomeVal
(要筛选的值)作为参数

我面临的问题是,我不知道如何在对象中找到PropertyName,因为它可以是任何东西


任何帮助都将不胜感激。

要从对象获取属性,只需使用

myObject[Prop1]
要确定对象是否具有属性,请使用

myObject.hasOwnProperty(Prop1)

请注意使用方括号语法访问对象属性。

它可以像这样是通用的吗

function filterArray(inputArray,customFunction){
 return $.grep(inputArray, function(e){       return customFunction(e);  });
}
其中,
customFunction
可以是用户定义的函数,用于将对象限定为选定对象

例如:

var sampleArray = [{name:"Ahamed",age: 21}, 
                   {name:"AhamedX",age: 21}, 
                   {name:"Babu",age: 25}, 
                  {name:"Mustafa",age: 27} ];

function nameComparator(obj){
       return obj["name"]=="Ahamed";
}

function ageFilter(obj){
    return obj["age"]>=25;
 }


var filteredArray=filterArray(sampleArray,nameComparator);
alert(filteredArray.length);
var filteredArray=filterArray(sampleArray,ageFilter);
alert(filteredArray.length);
小提琴链接:

var sampleArray = [{name:"Ahamed",age: 21}, 
                   {name:"AhamedX",age: 21}, 
                   {name:"Babu",age: 25}, 
                  {name:"Mustafa",age: 27} ];

function nameComparator(obj){
       return obj["name"]=="Ahamed";
}

function ageFilter(obj){
    return obj["age"]>=25;
 }


var filteredArray=filterArray(sampleArray,nameComparator);
alert(filteredArray.length);
var filteredArray=filterArray(sampleArray,ageFilter);
alert(filteredArray.length);