У меня есть несколько объектов в массиве:
"surcharges": [
{
"supplier": "XXXXX",
"name": "over_pkg_0",
"amount": 230
},
{
"supplier": "XXXXX",
"name": "over_pkg_1",
"amount": 54
},
{
"supplier": "YYYYY",
"name": "over_pkg_0",
"amount": 25
},
{
"supplier": "YYYYY",
"name": "over_pkg_1",
"amount": 25
}
];
Я бы хотел получить следующие результаты, используя lodash:
"surcharges": [
{
"XXXXX": [
{
"name": "over_pkg_0",
"amount": 230
},
{
"name": "over_pkg_1",
"amount": 54
}
],
},
{
"YYYYY": [
{
"name": "over_pkg_0",
"amount": 25
},
{
"name": "over_pkg_1",
"amount": 25
}
],
}
];
Я могу произвести нечто подобное, но ключи объединяются, и я не могу сделать их массивом. Вероятно, я должен использовать _.concat
где-нибудь в цепочке, но я не могу понять, как.
Пробовал с помощью:
var finalsurcharges = _.chain(surcharges)
.keyBy('supplier')
.mapValues(v => _.omit(v, 'supplier'))
.value();
Производит:
"finalsurcharges": {
"XXXXX": {
"name": "over_pkg_1",
"amount": 54
},
"YYYYY": {
"name": "over_pkg_1",
"amount": 25
}
}