我有一个集合,其中每个模型都有一个包含名称数组的属性'names'。我想按每个名字分组。每个模型都有很多名字。
我的代码
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 :(得分: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;
}