arr = [
{ID: 502, Description: 'aaa', code: 1122},
{ID: 2, Description: 'bbb', code: 2211},
{ID: 700, Description: 'ccc', code: 2222}
];
当我尝试过滤ID时,我得到了具体数字的所有出现:
$(filter)('filter')( arr, { ID: 2 } )[0]
返回一个ID:502,但它应该返回ID为2的条目
我的错在哪里?
答案 0 :(得分:3)
根据docs与对象一起使用时,如果元素包含值,它将与元素匹配。
模式对象可用于过滤数组包含的对象的特定属性。例如{name:“M”,phone:“1”}谓词将返回一个项目数组,其属性名称包含“M”,属性手机包含“1”。
传递comparator
的第二个选项true
将导致它执行严格的相等,这意味着它只应返回完全匹配。
$filter('filter')( arr, { ID: 2 }, true);
答案 1 :(得分:0)
您可以使用函数而不是对象。所以......
$filter('filter')(arr, function(value) {
return value.ID === 2;
});