2014-12-05 130 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