我有一个格式如下的数组
[
{
"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": ""
}
]
Underscore 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 :http://jsfiddle.net/t2tCa/
关于javascript - 使用下划线组来构造我的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21793191/