Переделать обьект в JS и посчитать сумму по категориям?
помогите пожалуйста решить задачу уже неделю голову ломаю есть такой обьект(возращает back)
{
"data": [
{
"id": 60,
"description": "Проект монтаж стены",
"summa": 2500,
"type": "income",
"date": "2023-01-03",
"user_id": 1,
"incomeСategory": {
"id": 2,
"name": "Фриланс"
},
"expenseCategory": null
},
{
"id": 55,
"description": "Тренир",
"summa": 5100,
"type": "income",
"date": "2022-10-26",
"user_id": 1,
"incomeСategory": {
"id": 1,
"name": "Зарплата"
},
"expenseCategory": null
},
{
"id": 53,
"description": "Тест",
"summa": 200,
"type": "income",
"date": "2022-10-25",
"user_id": 1,
"incomeСategory": {
"id": 1,
"name": "Зарплата"
},
"expenseCategory": null
},
{
"id": 46,
"description": "Продукты",
"summa": 580,
"type": "expense",
"date": "2022-10-12",
"user_id": 1,
"incomeСategory": null,
"expenseCategory": {
"id": 1,
"name": "Продукты"
}
},
{
"id": 40,
"description": "Зарплата",
"summa": 1200,
"type": "income",
"date": "2022-10-05",
"user_id": 1,
"incomeСategory": {
"id": 1,
"name": "Зарплата"
},
"expenseCategory": null
},
{
"id": 42,
"description": "Интернет",
"summa": 150,
"type": "expense",
"date": "2022-10-05",
"user_id": 1,
"incomeСategory": null,
"expenseCategory": {
"id": 2,
"name": "Интернет"
}
},
{
"id": 2,
"description": "Зарплата",
"summa": 5100,
"type": "income",
"date": "2022-09-06",
"user_id": 1,
"incomeСategory": {
"id": 2,
"name": "Фриланс"
},
"expenseCategory": null
},
{
"id": 59,
"description": "Доход от клуба",
"summa": 15100,
"type": "income",
"date": "2021-11-28",
"user_id": 1,
"incomeСategory": {
"id": 2,
"name": "Фриланс"
},
"expenseCategory": null
},
{
"id": 58,
"description": "Долг",
"summa": 31000,
"type": "income",
"date": "2021-05-02",
"user_id": 1,
"incomeСategory": {
"id": 1,
"name": "Зарплата"
},
"expenseCategory": null
}
]
}
И мне надо сделать что бы было как то так выбрать все записи где type === 'income' И посчитать по категории incomeСategory сумму, на выходе должно получиться как то так Фриланс - 22 300(общая сумма по категории) Запралата - 47 300 Может подскажите как можно сделать это ? На беки(Laravel) я возращаю это так Контроллер -
public function filterPeriod($dateStart, $dateEnd)
{
$userId = Auth::id();
$query = Record::where('user_id', $userId)->whereBetween('date', [$dateStart, $dateEnd])->with(['incomeСategory', 'expenseCategory'])->get();
return CheckResource::collection($query);
}
Вот ресурс CheckResource
public function toArray($request)
{
return [
'id' => $this->id,
'description' => $this->description,
'summa' => $this->summa,
'type' => $this->type,
'date' => $this->date,
'user_id' => $this->user_id,
'incomeСategory' => new CategoryResource($this->incomeСategory),
'expenseCategory' => new CategoryResource($this->expenseCategory),
];
}
Вот ресурс CategoryResource
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
];
}
Может я что то не так делаю на беки, просто опыт не большой в этом дели. Пожалуйста подскажите как можно реазиовать данную задача