У меня есть этот массив объектов
[
{
"countryCode": "US",
"countryName": "United States",
"stateId": "1",
"stateName": "Alabama",
"cityId": "1",
"cityName": "Montgomery"
},
{
"countryCode": "US",
"countryName": "United States",
"stateId": "2",
"stateName": "Alabama",
"cityId": "2",
"cityName": "Birmingham"
},
{
"countryCode": "US",
"countryName": "United States",
"stateId": "2",
"stateName": "Alaska",
"cityId": "1",
"cityName": "Anchorage"
}
]
, которые я хотел бы преобразовать в объект, подобный следующему
{
"countryCode": "US",
"countryName": "United States",
"states": [
{
"stateId": 1,
"stateName": "Alabama",
"cities": [
{
"cityId": 1,
"cityName": "Montgomery"
},
{
"cityId": 2,
"cityName": "Birmingham"
}
]
},
{
"stateId": 2,
"stateName": "Alaska",
"cities": [
{
"id": 1,
"name": "Anchorage"
}
]
}
]
}
Я пробовал loda sh 's groupBy
как var grouped = _.groupBy(data, 'countryCode')
, но я получил
{
HN: [
{
countryCode: 'US',
countryName: 'United States',
stateId: '1',
stateName: 'Alabama',
cityId: '1',
cityName: 'Montgomery'
},
{
countryCode: 'US',
countryName: 'United States',
stateId: '1',
stateName: 'Alabama',
cityId: '2',
cityName: 'Birmingham'
},
{
countryCode: 'US',
countryName: 'United States',
stateId: '2',
stateName: 'Alaska',
cityId: '1',
cityName: 'Anchorage'
}
]
}
Я не хочу, чтобы значение имени свойства, в котором будут сгруппированы данные, было ключом, я хочу, чтобы имя свойства было сгруппировано by, чтобы установить его в качестве ключа, а затем создать настраиваемое свойство в виде массива для перечисления всех городов штата, есть ли способ добиться этого?
Спасибо!