基本方法

const arr = [1, 2, 3, 4, 5];

// 1. 使用reduce方法
const average = arr.reduce((sum, num) => sum + num, 0) / arr.length;
console.log(average); // 输出: 3

// 2. 使用for循环
let sum = 0;
for (let i = 0; i < arr.length; i++) {
    sum += arr[i];
}
const avg = sum / arr.length;
console.log(avg); // 输出: 3

处理空数组

为了避免除以0的错误,可以添加检查:

function getAverage(arr) {
    if (arr.length === 0) return 0; // 或者抛出错误/返回其他默认值
    return arr.reduce((a, b) => a + b) / arr.length;
}

console.log(getAverage([])); // 输出: 0

更简洁的ES6写法

const average = arr => arr.length ? arr.reduce((a, b) => a + b) / arr.length : 0;

注意事项

  1. 确保数组中的元素都是数字类型,否则需要先进行类型转换

  2. 对于大型数组,reduce方法性能较好

  3. 如果数组中可能有非数字元素,需要先过滤:

    const mixedArr = [1, '2', 3, 'four', 5];
    const nums = mixedArr.filter(item => typeof item === 'number' || !isNaN(item));
    const avg = nums.reduce((a, b) => a + +b, 0) / nums.length;
    console.log(avg); // 输出: 3