我正在使用下划线的过滤器方法来检索集合中需要的模型。到目前为止,这是我的代码:
search = {'name':'Jordan', 'country':'Brazil'};
var people = this.filter(function(person){
return person.get('name') == search['name']
&& person.get('country') == search['country'];
});
我的问题是,我不知道我将在搜索对象中收到多少个键/值对。一个简单的解决方案是这样的:
search = {'name':'Jordan', 'country':'Brazil'};
var people = this.filter(function(person){
for(var key in search)
{
if(search.hasOwnProperty(key)) return person.get(key) == search[key];
}
});
但当然它不起作用。我该怎么办?
编辑:
我在搜索对象中获得的键不一定是我正在过滤的模型的属性。我可能会收到search = {'name':'Jordan', 'country':'Brazil', 'parentName': 'Steve'};
因此,其中一个过滤条件为Parents.byID(person.get('parentID')).get('name') == search['parentName'];
答案 0 :(得分:0)
解决了这个问题:
var select = true;
for(var key in search)
{
if(search.hasOwnProperty(key))
{
select = (person.get(key) == search[key]) ? true : false ;
}
if(select == false) break;
}
return select;