使用 underscore.js 对嵌套数组进行分组
Grouping a nested array with underscore.js
抱歉,如果这看起来像是重复的,但我已经尝试了其他答案,但我似乎无法得到正常工作的东西。我正在构建一个 AngularJS SPA,并且我有以下格式的数据:
"folders": [
{
"id": 1,
"password": "WPAUGOR452",
"year": 2013
},
{
"id": 2,
"password": "WPAUGOR452",
"year": 2013
},
{
"id": 3,
"password": "DFGOERJ305",
"year": 2014
}
还有很多很多。
我希望将文件夹分组,这样就可以了:
"folders": [
"2013": [
"WPAUGOR452": [
{
"id": 1,
"password": WPAUGOR452,
"year": 2013,
},
{
"id": 2,
"password": WPAUGOR452,
"year": 2013,
}
]
],
"2014": [
"DFGOERJ305": [
{
"id": 3,
"password": "DFGOERJ305",
"year": 2014
}
]
]
]
真实数据还有很多,但我已将其精简为真正想要分组的内容。目前每个文件夹都有一个密码和一个年份,我想让它们在几年内按密码分组,这样我就可以在UI中显示年份,然后所有适合特定密码的文件夹.
尽管还请注意,我想在 UI 中显示年份和密码(只有一次,在下面分组的项目中!)
如果需要任何进一步的细节,请询问。
这应该可以满足您的要求:
var result = _.chain(folders)
.groupBy('year')
.mapObject( year => _.groupBy(year, 'password'))
.value();
以及具有完整功能定义的版本:
var result = _.chain(folders)
.groupBy('year')
.mapObject(function(year) {
return _.groupBy(year, 'password');
})
.value();
解法先按年分组,再按年密码分组。
抱歉,如果这看起来像是重复的,但我已经尝试了其他答案,但我似乎无法得到正常工作的东西。我正在构建一个 AngularJS SPA,并且我有以下格式的数据:
"folders": [
{
"id": 1,
"password": "WPAUGOR452",
"year": 2013
},
{
"id": 2,
"password": "WPAUGOR452",
"year": 2013
},
{
"id": 3,
"password": "DFGOERJ305",
"year": 2014
}
还有很多很多。
我希望将文件夹分组,这样就可以了:
"folders": [
"2013": [
"WPAUGOR452": [
{
"id": 1,
"password": WPAUGOR452,
"year": 2013,
},
{
"id": 2,
"password": WPAUGOR452,
"year": 2013,
}
]
],
"2014": [
"DFGOERJ305": [
{
"id": 3,
"password": "DFGOERJ305",
"year": 2014
}
]
]
]
真实数据还有很多,但我已将其精简为真正想要分组的内容。目前每个文件夹都有一个密码和一个年份,我想让它们在几年内按密码分组,这样我就可以在UI中显示年份,然后所有适合特定密码的文件夹.
尽管还请注意,我想在 UI 中显示年份和密码(只有一次,在下面分组的项目中!)
如果需要任何进一步的细节,请询问。
这应该可以满足您的要求:
var result = _.chain(folders)
.groupBy('year')
.mapObject( year => _.groupBy(year, 'password'))
.value();
以及具有完整功能定义的版本:
var result = _.chain(folders)
.groupBy('year')
.mapObject(function(year) {
return _.groupBy(year, 'password');
})
.value();
解法先按年分组,再按年密码分组。