У меня есть этот объект с именем grouped
:
{ '1':
[ { id: 1,
name: 'John Doe',
supplierName: 'Sup1',
count: '21' } ],
'2':
[ { id: 2,
name: 'Jane Doe',
supplierName: 'Sup1',
count: '95' } ],
'3':
[ { id: 3,
name: 'Paul',
supplierName: 'Sup1',
count: '2' },
{ id: 3,
name: 'Paul',
supplierName: 'Sup2',
count: '1' }
]
}
Я создаю объект пользователя с этим:
let users = _.map(grouped, userArray => ({
id: userArray[0].id,
name: userArray[0].name,
suppliers: _.reduce(userArray, (accumulated, supplierObj) => {
if (supplierObj.supplierName) {
accumulated.push({
title: supplierObj.supplierName,
});
}
return accumulated;
}, []),
}));
В настоящее время это выглядит так:
{
"users": [
{
"id": 1,
"name": "John Doe",
"suppliers": [
{
"title": "Sup1"
}
]
},{
"id": 2,
"name": "Jane Doe",
"suppliers": [
{
"title": "Sup1"
}
]
},{
"id": 3,
"name": "Paul",
"suppliers": [
{
"title": "Sup1"
},{
"title": "Sup2"
}
]
}
]
}
Теперь я хочу добавить count
таким образом, чтобы мой вывод был таким:
{
"users": [
{
"id": 1,
"name": "John Doe",
"count": "21",
"suppliers": [
{
"title": "Sup1"
}
]
},{
"id": 2,
"name": "Jane Doe",
"count": "95",
"suppliers": [
{
"title": "Sup1"
}
]
},{
"id": 3,
"name": "Paul",
"count": "2",
"suppliers": [
{
"title": "Sup1"
},{
"title": "Sup2"
}
]
}
]
}
Если я просто добавлю count: userArray[0].count
, мой вывод верен для каждого пользователя, у которого есть один поставщик, но выбирает 1-го для любого с более чем одним. Например. Для вышесказанного Пол показал бы счет 2, а для Пола есть 2 клиента для Sup1 и 1 для Sup2. Как это исправить, чтобы пользователи, такие как Пол, имели более одного поставщика?