Как написать функцию, которая принимает массив чисел, например [1,2,3,4,5] и возращает среднее арифметическое, (округлить результат до десятых)?

Рейтинг: 0Ответов: 1Опубликовано: 05.04.2023

Есть рабочий код, но независимо от наличия десятичной части, она показывается. Как сделать так, чтобы десятичная часть показывалась только при её наличии? Например, в первом выводе 1.7, а во втором 4 (а не 4.0). Только пожалуйста с минимальными изменениями, а не через другие способы вроде reduce.

function average(array) {
  let arr = [];
  let sum = 0;
  for(i = 0; i < array.length; i++) {
    sum += array[i];
    } 
    sum = sum / array.length;
    return sum.toFixed(1);
  }


console.log(average([1,1,3])); // 1.7
console.log(average([1,2,3,4,5,6,7])); // 4

Ответы

▲ 0Принят

Чтобы изменить существующий код, чтобы он отображал только десятичную часть, если она существует, мы можем использовать встроенную в JavaScript функцию Number.isInteger(), чтобы проверить, является ли среднее число целым числом или нет. Если это так, мы можем вернуть целочисленное значение среднего значения, в противном случае мы можем вернуть среднее значение с одним десятичным знаком.

Вот измененный код:

function average(array) {
  let arr = [];
  let sum = 0;
  for(i = 0; i < array.length; i++) {
    sum += array[i];
  } 
  let avg = sum / array.length;
  return Number.isInteger(avg) ? avg : avg.toFixed(1);
}

console.log(average([1,1,3])); // 1.7
console.log(average([1,2,3,4,5,6,7])); // 4