此问题在此处已有答案:
(19个答案)
How to group an array of objects based on multiple keys in Javascript?(3个答案)
2天前关闭。
我有一个对象数组,我需要在JavaScript中以适合我的方式对其进行排序。
这是一个数组的例子:
[
{
"id": "AD012014001R",
"country": "AD",
"series": 1,
"issue_year": 2014
},
{
"id": "AD012014002R",
"country": "AD",
"series": 1,
"issue_year": 2014
},
{
"id": "AT012002002R",
"country": "AT",
"series": 1,
"issue_year": 2002
},
{
"id": "BE011999100R",
"country": "BE",
"series": 1,
"issue_year": 1999
},
{
"id": "BE011999200R",
"country": "BE",
"series": 1,
"issue_year": 1999
},
{
"id": "BE022008001R",
"country": "BE",
"series": 2,
"issue_year": 2008
}
]
我的输出应该是这样的:
[
{
"country": "AD",
"series": [
{
"series": 1,
"coins": [
{
"id": "AD012014001R",
"country": "AD",
"series": 1,
"issue_year": 2014
},
{
"id": "AD012014002R",
"country": "AD",
"series": 1,
"issue_year": 2014
}
]
}
]
},
{
"country": "AT",
"series": [
{
"series": 1,
"coins": [
{
"id": "AT012002002R",
"country": "AT",
"series": 1,
"issue_year": 2002
}
]
}
]
},
{
"country": "BE",
"series": [
{
"series": 1,
"coins": [
{
"id": "BE011999100R",
"country": "BE",
"series": 1,
"issue_year": 1999
},
{
"id": "BE011999200R",
"country": "BE",
"series": 1,
"issue_year": 1999
}
]
},
{
"series": 2,
"coins": [
{
"id": "BE022008001R",
"country": "BE",
"series": 2,
"issue_year": 2008
}
]
}
]
}
]
所以我的API响应必须更大,但这只是其中的一小部分。我得到了数百个看起来像这样的对象的数组,需要对它们进行排序,并首先按国家排序,然后按每个国家下的系列返回它们。我知道有很多类似的问题,但我无法弄清楚,因为我的问题比所有问题都复杂。
1条答案
按热度按时间zf9nrax11#
你可以使用一个包含组键和children属性的数组来实现多步操作。然后在级别上找到组并构建一个新的对象,或者只是返回子对象。最后推送对象。