在 jQuery 中使用 grep 编写通用过滤器
writing generic filter using grep in jQuery
有没有办法编写以下代码更通用?
var result = $.grep(myObjectArray, function(e){
return e.Prop1 == 'SomeVal';
});
这就是我想做的。
一个泛型函数,它将接受myObjectArray
(要筛选的对象数组)、Prop1
(属性名称)和SomeVal
(要筛选的值)作为参数。
我面临的问题是我不知道如何在对象中找到 PropertyName,因为它可以是任何东西。
任何帮助将不胜感激。
function filterObjectArray(myObjectArray, prop1, someVal) {
return $.grep(myObjectArray, function (e) {
return e[prop1] === someVal;
};
}
请注意使用方括号语法进行对象属性访问。
要从对象获取属性,只需使用
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);
小提琴链接 : http://jsfiddle.net/MAq6c/
相关文章:
- 为什么我的d3.jsselectAll+过滤器没有过滤
- Angularjs-utils高亮过滤器在搜索时破坏应用程序
- Angular-表的多列过滤器
- 如何“;过滤器”;或者以其他方式重构该数据
- grep in JQuery to C#
- Angularjs通过过滤器获取indexOf
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 使用按钮的Angular UI网格过滤器
- KendoUI网格行过滤器,带有布尔值下拉列表
- 如何在angular.js中动态应用自定义过滤器
- 角度过滤器和ng点击不起作用
- SVG过滤器可以'不能在React中呈现
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 在表单中创建一个黑名单过滤器以避免某些单词
- 如何应用带过滤器的ng if来过滤记录,并在同一页面中显示两个不同的视图
- 过滤器返回true或false
- 在 jQuery 中使用 grep 编写通用过滤器
- 用于多种类型的过滤器的 jQuery grep 方法
- jQuery GREP + JSON空数据过滤器
- JQuery grep (. .)VS原生JavaScript过滤器(..)函数性能