【发布时间】:2022-12-18 17:18:43
【问题描述】:
我有一组这样的对象:
[
{
"id": 1,
"name": "Question1",
"categories": [
{
"id": 20,
"name": "Science"
},
{
"id": 21,
"name": "General Knowledge"
},
{
"id": 20,
"name": "Mathematic"
}
]
},
{
"id": 2,
"name": "Question2",
"categories": [
{
"id": 20,
"name": "Science"
}
]
},
{
"id": 3,
"name": "Question3",
"categories": [
{
"id": 20,
"name": "Science"
}
]
}
]
我想按对象属性将对象分组为子数组(按字母顺序排序)姓名数组的类别.
预期的输出将是:
[
//General Knowledge
[
{
"id": 1,
"name": "Question1",
"categories": [
{
"id": 20,
"name": "Science"
},
{
"id": 21,
"name": "General Knowledge"
},
{
"id": 20,
"name": "Mathematic"
}
]
}
],
//Mathematic
[
{
"id": 1,
"name": "Question1",
"categories": [
{
"id": 20,
"name": "Science"
},
{
"id": 21,
"name": "General Knowledge"
},
{
"id": 20,
"name": "Mathematic"
}
]
}
],
//Science
[
{
"id": 1,
"name": "Question1",
"categories": [
{
"id": 20,
"name": "Science"
},
{
"id": 21,
"name": "General Knowledge"
},
{
"id": 20,
"name": "Mathematic"
}
]
},
{
"id": 2,
"name": "Question2",
"categories": [
{
"id": 20,
"name": "Science"
}
]
},
{
"id": 3,
"name": "Question3",
"categories": [
{
"id": 20,
"name": "Science"
}
]
}
]
]
我一直在尝试使用循环和Array.reduce(),但我没能成功。
哪一个是实现预期输出的最佳方式? 非常感谢!
【问题讨论】:
-
你能确认你的预期输出是正确的吗?您不是说问题 1 每次只有常识,然后只有数学,然后只有科学,而不是这三个吗?
-
预期的输出是正确的,因为每个子数组都是一个组。问题 1 重复三次(每个数组重复一次)因为它有三个类别
标签: javascript arrays sorting grouping lodash