Как посчитать среднее значение массива
Короткий ответ
Сложите все элементы через reduce() и разделите на их количество:
const scores = [4, 5, 3, 5, 4];
const average = scores.reduce((sum, score) => sum + score, 0) / scores.length;
console.log(average);Результат:
4.2Поле объектов
Для массива объектов складывайте нужное поле:
const orders = [{ total: 120 }, { total: 80 }, { total: 55 }];
const average = orders.reduce((sum, order) => sum + order.total, 0) / orders.length;
console.log(average.toFixed(2));Результат:
85.00Частая ошибка
Для пустого массива получится NaN, потому что 0 делится на 0. Обработайте этот случай отдельно:
const average = (numbers) =>
numbers.length === 0 ? 0 : numbers.reduce((sum, n) => sum + n, 0) / numbers.length;
console.log([].reduce((sum, n) => sum + n, 0) / 0);
console.log(average([]));Результат:
NaN
0Функции из этого ответа
- Array.prototype.reduce — Сводит массив к одному значению.
- Math.round — Округляет число до ближайшего целого.