Javascript 在backbone.js集合上递归使用groupBy

Javascript 在backbone.js集合上递归使用groupBy,javascript,backbone.js,underscore.js,Javascript,Backbone.js,Underscore.js,我正在建立一个网上商店,顾客可以选择不同的商品,并根据不同的颜色进行定制。在结帐时,我想首先按项目描述对它们进行分组,然后将返回的组分成更多的颜色组 我似乎不能递归地做这件事。这就是我到目前为止返回的项目组 var groupedItems = this.collection.groupBy(function(model){ return model.get('description');}); 我如何再次运行它以获取此输出并按颜色分组?我想我可能需要再次将输出转换为集合 非常感谢您的帮助在回

我正在建立一个网上商店,顾客可以选择不同的商品,并根据不同的颜色进行定制。在结帐时,我想首先按项目描述对它们进行分组,然后将返回的组分成更多的颜色组

我似乎不能递归地做这件事。这就是我到目前为止返回的项目组

var groupedItems = this.collection.groupBy(function(model){ return model.get('description');});
我如何再次运行它以获取此输出并按颜色分组?我想我可能需要再次将输出转换为集合


非常感谢您的帮助

在回答我最初的问题时,杰克给了我一个解决方案,这是我用来将一个集合按一个属性分组,然后再按另一个属性的子组分组的代码。这在主干groupBy的结果上使用下划线groupBy

var finalGroupedArray = [];
var groupedItems = this.collection.groupBy(function(model){ return model.get('description');});
var count = 0;

for(var description in groupedItems){
    var groupedColours = _.groupBy(groupedItems[Object.keys(groupedItems)[count]], function (item) {return item.get('colour');},this);
    finalGroupedArray.push(groupedColours);
    count++;
}

主干网的groupBy函数只是下划线的代理,所以您可以使用它。类似于
var groupedcolors=..groupBy(groupedItems,函数(项){return item.get('color');},this)谢谢回复@Jack。你让我走上了正确的道路,现在我有了一些有用的东西!这是我得到的密码<代码>var FinalGroupeArray=[];var groupedItems=this.collection.groupBy(函数(模型){return model.get('description');});var计数=0;对于(groupedItems中的变量描述){var groupedcolors=uu.groupBy(groupedItems[Object.keys(groupedItems)[count]],函数(item){return item.get('color');},this);finalGroupedArray.push(groupedcolors);count++;}
很高兴提供帮助,虽然我觉得你忘了发布你收到的代码。呵呵,是的,我有点笨——我太快就按了回车键!我现在已经添加了它,但它的格式不是很好。一般来说,最好用相关信息更新你的问题(在那里设置格式也比较容易),也就是说,如果它是问题的一部分,如果它是一个解决方案,那么你可以将其作为答案发布(尽管你可能需要等待一段时间才能回答自己的问题)。