我正在建立一个在线商店,客户可以在其中选择不同的商品并根据不同的颜色定制每个商品。在结账时,我想首先按商品描述对它们进行分组,然后将返回的组分成更多的颜色组。
我似乎无法递归地执行此操作。这就是我到目前为止要返回的项目组
var groupedItems = this.collection.groupBy(function(model){ return model.get('description');});
我如何再次运行它来获取此输出并按颜色分组?我想我可能需要再次将输出变成集合?
非常感谢任何帮助
最佳答案
为了回答我最初的问题, jack 为我设置了一个解决方案,这是我用来按一个属性对集合进行分组的代码,后跟另一个属性的子组。这在 Backbone 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++;
}
关于javascript - 在backbone.js集合上递归使用groupBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24273519/