LosTinCode
@LosTinCode

Функция которая возвращает минимальное, максимальное и среднее арифметическое значений массива?

Не совсем пойму, как вывести среднее значение массива.

Задание:
Требуется написать функцию getArrayParams(arr), которая получает на вход массив чисел от -100 до 100 и возвращает минимальное, максимальное и среднее арифметическое значений массива.

Мой код:
function getArrayParams(arr) {
    let min, max, sum, avg;
    min = Infinity;
    max = -Infinity;
  
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] > max) {
            max = arr[i]
        }
        else if (arr[i] < min) {
            min = arr[i]
        }
            sum = arr[i];
            avg = min + max + sum / 3;
            avg.toFixed();
            avg = Number(avg);
    }
  
    return { min:min, max:max, avg:avg };
  }
  getArrayParams([1, 2, 3, -100, 10]);


Что он выводит:
{min: -100, max: 10, avg: -86.66666666666667}

Понимаю, что как то не правильно я записал, но пока мозгов не хватает. Среднее значение мне кажется не совсем правильно считаю, т.е я сумму всех чисел делю на количество элементов, с помощью метода toFixed округляю, потом преобразую в число, т.к toFixed возвращает строку, верно?
Да и запись у меня наверно не совсем логичная и правильная, но всё равно не пойму как довести до ума

P.s Знающий наверно за сердце схватиться, как увидит код)
  • Вопрос задан
  • 748 просмотров
Решения вопроса 2
Fragster
@Fragster
помогло? отметь решением!
Не надо среднее считать на каждой итерации, надо сумму поделить на количество.
let sum = 0
  for() {
   ///
   sum += arr[i];
    }
    let avg = arr.length ? sum / arr.length : undefined;
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
Среднее арифметическое — это сложить все и поделить на их количество.

Самая сложная часть задачи – сложить все элементы массива. Можно в цикле, можно reduce(): arr.reduce((acc, c) => acc + c) // -84
Количество чисел — длина массива: arr.length // 5

Минимальное и максимальное проще найти встроенными методами:
Math.min(...arr) // -100
Math.max(...arr) // 10

Остаётся всё это собрать в пять строчек кода.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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