0

我有一个集合,其中每个模型都有一个包含名称数组的属性“名称”。我想按每个名字分组。每个模型都可以有很多名称。

我的代码

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 循环。

任何的想法??

谢谢

4

1 回答 1

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;
}
于 2013-02-08T15:59:32.510 回答