I solve CodeWars challenge: `Write function find_average which calculates the average of numbers in a given array. But the questions is:
1) How can this code be optimized in Big-O notation terms, is it possible to reduce loop-iterations: input values testing with array.every (need to exclude TypeError when array.reduce with [1, 2, 'string'])
2) I think now complexity equal to Θ(n), am I right?
function find_average(array) {
// your code here
if (Array.isArray(array) && array.every(elem => typeof elem == 'number')) {
const numberCount = array.length;
if (numberCount == 1) {
return array[0];
}
let sum = array.reduce((accumulator, currentValue) => {
return accumulator + currentValue;
})
const averageNumber = sum/numberCount;
return averageNumber;
}
throw new TypeError('Array value are not number.');
}