Javascript 使用下划线group by构造数组

Javascript 使用下划线group by构造数组,javascript,arrays,backbone.js,underscore.js,Javascript,Arrays,Backbone.js,Underscore.js,我有一个如下格式的数组 [ { "duedate": "15-feb-2014", "alias": "electronus", "agent": "anonymous", "name": "" }, { "duedate": "15-feb-2014", "alias": "luminous", "agent": "anonymous", "name": "" }, { "duedate": "16-feb-2014",

我有一个如下格式的数组

[
{
    "duedate": "15-feb-2014",
    "alias": "electronus",
    "agent": "anonymous",
    "name": ""
},
{
    "duedate": "15-feb-2014",
    "alias": "luminous",
    "agent": "anonymous",
    "name": ""
},
{
    "duedate": "16-feb-2014",
    "alias": "GSM",
    "agent": "anonymous",
    "name": ""
}
]
下划线group by方法允许我使用属性和到期日期对数组进行分组。这将返回如下数组

{
"15-Feb-2014": [
    {
        "duedate": "15-feb-2014",
        "alias": "electronus",
        "agent": "anonymous",
        "name": ""
    },
    {
        "duedate": "15-feb-2014",
        "alias": "luminous",
        "agent": "anonymous",
        "name": ""
    }
],
"16-Feb-2014": [
    {
        "duedate": "16-feb-2014",
        "alias": "GSM",
        "agent": "anonymous",
        "name": ""
    }
]
}
我是否有可能拥有这样一个数组:

[
{
    "duedate": "15-feb-2014",
    "myValues": [
        {
            "duedate": "15-feb-2014",
            "alias": "electronus",
            "agent": "anonymous",
            "name": ""
        },
        {
            "duedate": "15-feb-2014",
            "alias": "luminous",
            "agent": "anonymous",
            "name": ""
        }
    ]
},
{
    "duedate": "16-feb-2014",
    "myValues": [
        {
            "duedate": "16-feb-2014",
            "alias": "GSM",
            "agent": "anonymous",
            "name": ""
        }
    ]
}
]
所以我可以在每个到期日内有多个数组值,这样我就可以解析它来填充一个我无法更改的模板


我已经为此奋斗了很长一段时间。任何帮助都将不胜感激。

您只需在
groupBy()之后调用
map()

var groupedArray = _.chain(list)
                       .groupBy(function (x) { return x.duedate })
                       .map(function (value, date) { 
                           return {
                               duedate: date,
                               myValues: value
                           };
                       })
                       .value();

JS Fiddle:

您只需在
groupBy()之后调用
map()

var groupedArray = _.chain(list)
                       .groupBy(function (x) { return x.duedate })
                       .map(function (value, date) { 
                           return {
                               duedate: date,
                               myValues: value
                           };
                       })
                       .value();

JS Fiddle:

一定有办法,你能把你的代码展示给我们吗?一定有办法,你能把你的代码展示给我们吗?很乐意帮忙。这真是一个有趣的游戏!很乐意帮忙。这真是一个有趣的游戏!