我有一个JSON对象如下:
{"email":null,"fullList":true,"listOfSomething":[
{
"contactEmailAddress": "fred@test.com",
"somethingId": 11060767,
"other": "whatever"
},
{
"contactEmailAddress": "fred@test.com",
"somethingId": 8499447,
"other": "whatever"
}, {
"contactEmailAddress": "fred@test.com",
"somethingId": 3234664,
"other": "whatever"
}, {
"contactEmailAddress": "fred@test.com",
"somethingId": 3233245,
"other": "whatever"
}
]
,"numOfResults":22}
在角度中,我想通过一系列选定的ID过滤此列表,以匹配键中的键" SomethingID",#list; listOfSomething"
我要匹配的ID数组格式为:
[16199615,16199619]
我当前的过滤器只返回整个列表,未经过滤:
.filter('somethingFilter', ['somethingListService', function(somethingListService) {
domainsSelected = somethingListService.getSomethingSelected();
return function(array) {
return array.filter(function(item) {
return somethingSelected.indexOf(item.somethingId) === -1;
});
};
}]);
我尝试了很多不同的方法,但是找不到一个数字数组与嵌套的JSON对象匹配的例子,它没有数字索引。
答案 0 :(得分:2)
这是一个工作示例,我认为你想要实现的目标: http://jsfiddle.net/martinczerwi/kdmqvw19/3/
我注意到,如果找不到ID,你的过滤器会返回true,这就是整个数组被转储的原因。 ID数组的名称也错了。应该是:
return domainsSelected.indexOf(item.somethingId) !== -1;
在我的示例中,我已将数据中的ID添加到过滤器ID。