2014-12-05 95 views
0

我想过滤所有具有相同的多个键/值巴黎的骨干模型。例如,我想匹配ID为123且名称为'John'的所有/第一个模型。使用_.matches()和筛选骨干模型

我意识到还有其他方法可以做到这一点,但是想利用matches()方法。

是否可以使用Underscore的matches()方法创建函数以传递至filterfind来查找Backbone模型?

var search_fn = _.matches({id: 123, type: 'John'}); 
var should_be_active = _.find(master_model_array, search_fn); 
+0

我不知道为什么不;你有特定的问题吗? – 2014-12-05 20:48:00

回答

1

是的,它应该可以工作,类似于你所做的,但使用“过滤器”。

为了重申:

// Sample data 
var x = {name:"j", id: 1}, 
    y = {name: "j", id: 2}, 
    z = {name: "j", id: 1, more: "data"}, 
    match = _.matches({name: "j", id: 1}); 
var list = [x,y,z]; 

var result = _.filter(list, match); 

这导致在X和Z作为它的条件相匹配。 jsFiddle

希望它有帮助。

+0

此代码是否可以与Backbone模型一起使用(与对象文字x,y和z相对)? – 2014-12-08 21:29:06

+0

另外,除了'filter'方法外,你的代码还可以使用'find'方法。 – 2014-12-08 21:30:41