Задать вопрос
@fanhypermax

Как найти среднее число?

Есть массив с числами [6,4,4.5,3.5,5.5,3,6.5] как найти в нём среднее число 4.5?
  • Вопрос задан
  • 335 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Что значит среднее? Указанное вами значение может быть средним сразу в двух смыслах. Если разместить элементы массива на числовой прямой, то среднее номер раз - это то, по обе стороны которого находится одинаковое (ну, почти, при чётной длине массива) количество элементов; среднее номер два - то, которое расположено максимально близко к середине между максимумом и минимумом.

В первом случае сортируем массив, хватаем средний элемент:

const middle = arr =>
  [...arr].sort((a, b) => a - b)[arr.length >> 1];

Во втором находим минимум и максимум, вычисляем середину, перебираем массив в поисках такого элемента, чьё абсолютное значение разности с серединой будет наименьшим:

function middle(arr) {
  const min = Math.min(...arr);
  const max = Math.max(...arr);
  const mid = max - (max - min) / 2;
  return arr.reduce((closest, n) => {
    const diff = Math.abs(n - mid);
    return diff < closest[1] ? [ n, diff ] : closest;
  }, [ void 0, Infinity ])[0];
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы