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

标签 javascript backbone.js underscore.js

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

我似乎无法递归地执行此操作。这就是我到目前为止要返回的项目组

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/

相关文章:

javascript - 用于验证货币数字格式的正则表达式

javascript - 如果数据库中有新条目,聊天更新

javascript - 使用 Underscore.js 将数组转换为对象数组?

javascript - Underscore 从 JSON 对象创建对象数组

javascript - 如何创建一个 dojo 数据网格,其中一列是标题行中的按钮?

javascript - 取消绑定(bind) View 添加到 app.vent 的所有事件

Jquery、require.js、backbone.js。示例应用程序

backbone.js - Trello 如何准确显示用户在线/离线/空闲状态?

javascript - 为什么 Underscore.js 有延迟功能?

javascript - 我可以使用 JavaScript 与其他计算机建立连接吗?