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
const average = arr => arr.length ? arr.reduce((a, b) => a + b) / arr.length : 0;
确保数组中的元素都是数字类型,否则需要先进行类型转换
对于大型数组,reduce方法性能较好
如果数组中可能有非数字元素,需要先过滤:
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