如果filterparameters
的数量未知,或者即使它包含任何键和值,通过这种对象进行过滤的最佳方法是什么。我正在考虑先遍历filterparameters
,然后构建AND运算符。解决此问题的最佳方法是什么?
var filterParameters = {color: "red", size: "small"};
var jsonFiltered = $.grep(json, function (j) {
return (j.color === filterParameters.color) && (j.size === filterParameters.size)
});
http://jsfiddle.net/pxjLhoqo/
最佳答案
您可以遍历过滤器参数,使用key
来检查其值是否与当前json
迭代中的值相对应:
var filterParameters = {color: "red", size: "small"};
var jsonFiltered = $.grep(json, function (j) {
filter = true;
$.each(filterParameters, function(i, v){
filter = j[i] != v ? false : filter
});
return filter;
});
JSFiddle