我有一组对象,它们基于所选对象具有一些可筛选的信息。
我有以下内容,并希望在
selected
并且只返回满足所有条件的项(在本例中是用户
Amber
谁有
tagId
第12页,和
placementId
第页,共27页)。
一个警告是如果
挑选出来的
筛选器等于空,应将其从筛选中排除,因为这意味着用户没有按空筛选。
这将增长到8个过滤器,所以不想做一些大的if语句。我怎么能这样做?
var selected = {};
selected["tagId"] = 12;
selected["placementId"] = 27;
selected["locationId"] = null;
var users = [];
users.push({"name":"Joe", "tagIds":[3,4,12], "placementIds": [2,19]});
users.push({"name":"Suzy", "tagIds":[3,4], "placementIds": [2,19, 27]});
users.push({"name":"Amber", "tagIds":[1,12], "placementIds": [2,19, 27]});
function filterBySelected(items){
var hits = [];
console.log('within filter by Selected');
console.log(items);
for (var key in selected){
if(selected[key]){ //
console.log('you are filtering by: ' + key);
}
}
return hits;
}
var items = filterBySelected(users);
// items should return user object of "Amber"