Это структура объекта, которую я получаю из API:
{
"assignedUser":"user",
"brokerName":'br',
"brokerId":321,
"lobId":3,
"tenderId":"id",
"quoteDeadline":"2019-01-23",
"tenderType":"LA",
"tenderTypeId":6
}
Моя таблица сейчас выглядит так:
текущая таблица
Мне нужна «1», если assignedUser
имеет brokerName
, или «-», если не для каждого столбца брокера. В этом случае их только два (нет и Aon ограничено), но это не фиксировано.
Столбец Count
показывает количество объектов на assignedUser
, т.е. для первой строки должен быть ' 1 'на none
и' - 'на Aon Limited
Сначала я фильтрую всех брокеров, чтобы они были уникальными для столбцов:
const generateBrokerColumns =
brokerSearch()?.map((broker: any) => { // brokerSearch filters out all duplicate names
return ({
title: broker.text,
dataIndex: broker.value
});
})
Затем я группирую массив объектов по имени пользователя , используя loda sh groupBy:
const workloadGroupedByUser = groupBy(workload, 'assignedUser');
const generateTable = Object.keys(workloadGroupedByUser).map((workload: any) => {
return {
assignedUser: workload,
count: workloadGroupedByUser[workload].length,
}
});
Это отображается с помощью:
<Table columns={generateBrokerColumns} dataSource={generateTable}/>
Вопрос:
Мне нужен способ отразить индексы данных, созданные в generateBrokerColumns
, чтобы я мог добавить '-' или '1', когда я перебираю workloadGroupedByUser
ОБНОВЛЕНИЕ:
const generateTable = Object.keys(workloadGroupedByUw).map((workload: any) => {
const a = countBy(workloadGroupedByUw[workload], 'brokerId');
const b = JSON.stringify({
assignedUser: workload,
...a,
count: workloadGroupedByUw[workload].length
});
return JSON.parse(b);
});
Используя loda sh countBy, решил выпускать частично. Но brokerId в a
не совпадает с порядком generateBrokerColumns
.