2013-02-08 43 views
0

我收集了一個集合,其中每個模型都有一個包含名稱數組的屬性「名稱」。我想按每個名稱進行分組。每個模型都可以有很多名字。如何在每個模型中通過數組屬性在Backbone.js中使用組合集合

我的代碼

groupByName: function(){ 
return this.collection.groupBy(function(item){ 
    for (var i=0; i<item.get('names').length; i++){ 
     return item.get('names')[i]['description']; //description: get name by id 
    } 
}); 
}, 

的問題,是與該代碼,GROUPBY剛剛返回的每個陣列事業的名字羣體打破了for循環。

任何想法??

感謝

回答

0

假設names數組不包含重複的條目,或許是這樣的:

groupByName: function() { 
    var grouped = {}; 
    this.collection.each(function (item) { 
    var names = item.get('names'); 
    for (var i = 0; i < names.length; i++) { 
     var description = names[i].description; 
     var group = grouped[description] || (grouped[description] = []); 
     group.push(item); 
    } 
    }); 
    return grouped; 
} 
相關問題