Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как посчитать среднее значение массива

Короткий ответ

Сложите все элементы через 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 — Округляет число до ближайшего целого.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.