Переделать обьект в 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,
        ];
    }

Может я что то не так делаю на беки, просто опыт не большой в этом дели. Пожалуйста подскажите как можно реазиовать данную задача


Ответы (0 шт):