2
尝试查看一个数组中的数据是否与另一个数组中的数据匹配。我有对象的数组,像这样 -
var ProductsList =
[
{"Name": "Product A"; "Rating": "3"},
{"Name": "Product B"; "Rating": "2"},
{"Name": "Product C"; "Rating": "1"},
];
然后我想比较用户选择的值,它进来,我得到基础上,他们通过复选框选择的值的数组这款产品列表。因此,如果他们选择了1,2,3 - 应显示所有产品,如果他们选择1 - 则仅显示产品A.
我试图使用$ .grep做过滤,但我遇到了通过数组值过滤的问题。作为一个例子,我们将用户过滤器硬编码为所有值。
userFilterArray.Rating = [1, 2, 3];
function filter(ProductsList, userFilterArray)
filteredList = $.grep(ProductList, function(n) {
return (n.Rating == userFilterArray.Rating);
});
显然,这并不工作,因为我比较n.Rating这是一个字符串数组,但我不知道如何串在这种情况下比较字符串。
grep会是最简单的方法吗?我应该使用.each .each组合吗?也许都不是?