Расчет среднего арифметического числовых элементов массива

Дан массив с элементами разных типов. Нужно создать функцию, которая высчитывает среднее арифметическое только числовых элементов данного массива

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>

→ Ссылка