按关联对对象数组进行分组的最佳实践';使用JavaScript(ES6)的用户ID?
我正在寻找关于如何根据对象的关联ID对数组进行分组的最佳实践。数据如下所示:按关联对对象数组进行分组的最佳实践';使用JavaScript(ES6)的用户ID?,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我正在寻找关于如何根据对象的关联ID对数组进行分组的最佳实践。数据如下所示: const data = [ { "id": 1, "association": { "id": 1, "name": "Association A" }, "more_data": "...", ... }, { "id": 2, "association": { "id": 2, "name":
const data = [
{
"id": 1,
"association": {
"id": 1,
"name": "Association A"
},
"more_data": "...",
...
},
{
"id": 2,
"association": {
"id": 2,
"name": "Association B"
},
...
},
...
]
因此,结果将返回:
{
1: [ { data_hash }, { data_hash }, ...],
2: [ { data_hash }, { data_hash }, ...],
...
}
其中1和2是上面的关联ID。Ruby/Rails内置了一些方法,可以轻松做到这一点:
Data.group_by(&:association_id).each do |association_id, data|
puts association_id
data.each do |data|
puts data
end
end
JavaScript/ES6世界中是否有类似或等效的东西,或者有人能提供一些关于如何最好地处理这个问题的见解吗?一个库,或者仅仅是一个可以实现这个功能的函数
这里的另一个挑战是关联的ID位于该嵌套哈希中
编辑:完全不反对使用库。正在寻找有关轻量级内容的建议。看起来lodash是最轻量级的库,具有groupBy功能: 那里的文档没有让我非常清楚,但这个问题确实:
这里的香草版使用数组reduce:(谢谢Kevin B)没有。你必须自己拉一个库或做循环/etc。lodash或下划线的groupBy是我想到的第一件事所以你要找lib推荐?那是。。。在偏离主题的路线上骑行。但是你可以用一个简单的映射和/或reduce很容易做到这一点。我更想寻找一个实现,以及如何处理关联哈希中的嵌套id。是的,所以使用array reduce。也可能已经有几百人在这里了。