Расчет среднего арифметического числовых элементов массива
Дан массив с элементами разных типов. Нужно создать функцию, которая высчитывает среднее арифметическое только числовых элементов данного массива
function calculateArr() {
let ownArray = ['qwr', 'qwe', 'wqe', 'wqe', 'qwe', 'rew', 'ewtr', 'fbd', 'sdv', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 'end'];
let sum = 0;
let count = 0;
for(let i = 0; i < ownArray.length; i++){
// ownArray[i] = parseInt(ownArray[i]);
if (!isNaN(ownArray[i])) {
count += 1;
sum += ownArray[i];
}
console.log(count);
// console.log(sum);
}
return itog = sum / count;
}
let result = calculateArr();
alert(result);
Ответы (3 шт):
Автор решения: Igor
→ Ссылка
function calculateArr() {
let ownArray = ['qwr', 'qwe', 'wqe', 'wqe', 'qwe', 'rew', 'ewtr', 'fbd', 'sdv', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 'end'];
let sum = 0;
let count = 0;
for (let i = 0; i < ownArray.length; i++) {
if (ownArray[i] === +ownArray[i]) {
count++;
sum += ownArray[i];
}
}
return count? sum / count : 0;
}
let result = calculateArr();
console.log(result);
Автор решения: IvaMuxa
→ Ссылка
let ownArray = ['qwr', 'qwe', NaN, 'wqe', 'qwe', 'rew', 'ewtr', 'fbd', 'sdv', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 'end'];
let count = 0;
console.log(ownArray.reduce((a, b) => {
if (typeof b == "number" && !isNaN(b)) {
++count;
return a += b;
} else return a
}, 0) / count || 0);
Автор решения: Татьяна Компаниец
→ Ссылка
let ownArray = ['qwr', 'qwe', 'wqe', 'wqe', 'qwe', 'rew', 'ewtr', 'fbd', 'sdv', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 'end'];
function defineAverage() {
var numbers = ownArray.filter(x => !isNaN(x));
if (numbers.length == 0)
return 0;
var sum = numbers.reduce((prev, curr) => prev + curr);
return sum / numbers.length;
}
document.getElementById('average').innerHTML = defineAverage();
Average = <span id="average"></span>