Как написать функцию, которая принимает массив чисел, например [1,2,3,4,5] и возращает среднее арифметическое, (округлить результат до десятых)?
Есть рабочий код, но независимо от наличия десятичной части, она показывается. Как сделать так, чтобы десятичная часть показывалась только при её наличии? Например, в первом выводе 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
Ответы (1 шт):
Чтобы изменить существующий код, чтобы он отображал только десятичную часть, если она существует, мы можем использовать встроенную в 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