среднее значение из базы данных

Собственно вот мой код :

const vinyls = await Vinyl.findAll({
  limit: limit,
  offset: offset,
  include: [
    {
      model: Review,
    },
  ],
});

вот ответ :

`{
        "id": 2,
        "name": "The Dark Side of the Moon",
        "price": 30,
        "author": "Pink Floyd",
        "description": "An iconic album by Pink Floyd.",
        "createdAt": "2024-04-25T22:33:25.000Z",
        "updatedAt": "2024-04-25T22:33:25.000Z",
        "reviews": [
            {
                "id": 2,
                "review": 2,
                "vinylId": 2,
                "userId": 2,
                "createdAt": "2024-04-25T22:33:26.000Z",
                "updatedAt": "2024-04-25T22:33:26.000Z"
            },
            {
                "id": 47,
                "review": 8,
                "vinylId": 2,
                "userId": 7,
                "createdAt": "2024-04-25T22:33:26.000Z",
                "updatedAt": "2024-04-25T22:33:26.000Z"
            }
        ]
    },`

я не могу понять, как мне посчитать средне знаение reviewи вывести этот результат.


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

Автор решения: Tytenok

Проходимся по всем винилам и их отзывам, суммируем значения отзывов и подсчитываем общее количество отзывов. Затем вычисляем среднее значение отзывов путем деления суммы на общее количество.

let totalReviews = 0;
let totalReviewCount = 0;

vinyls.forEach((vinyl) => {
  vinyl.reviews.forEach((review) => {
    totalReviews += review.review;
    totalReviewCount++;
  });
});

const averageReview = totalReviews / totalReviewCount;
console.log('Average review:', averageReview);
→ Ссылка