Ниже приведены мои примеры данных,
var data = [
{
"Employee Name": "Mr. X",
"Portfolio Lead": "A"
},
{
"Employee Name": "Mr. Y",
"Portfolio Lead": "B"
},
{
"Employee Name": "Mr. Z",
"Portfolio Lead": "C"
},
{
"Employee Name": "Mr. Q",
"Portfolio Lead": "A"
},
{
"Employee Name": "Mr. P",
"Portfolio Lead": "A"
}
];
Теперь мне нужно сгруппировать все элементы массива по его "Portfolio Lead"
и pu sh их в новый массив.
Ниже приведен мой code,
const groupBy = (array, key) => {
return array.reduce((result, currentValue) => {
(result[currentValue[key]] = result[currentValue[key]] || []).push(
currentValue
);
return result;
}, {});
};
Приведенный выше код работает, он группируется по ключу, но я хотел, чтобы новый массив был в этой структуре.
Моя текущая структура такая,
{
"A": [
{
"Employee Name": "Mr. X",
"Portfolio Lead": "A"
},
...
],
"B": [
{
"Employee Name": "Mr. Y",
"Portfolio Lead": "B"
}
],
"C": [
{
"Employee Name": "Mr. Z",
"Portfolio Lead": "C"
}
]
}
Но нужно ли это так
{
"Portfolio Lead": "A",
Count: 3,
oriData: [....]
}
В настоящее время я застрял с этим, пожалуйста, помогите.
Мой стек Blitz https://stackblitz.com/edit/typescript-nypqge?file=index.ts