Array Average in JavaScript
sum / length. Empty array is divide-by-zero. Guard it.
BeginnerArray ProgramsExample 2 of 6
array-average.js
1// Method 1: Using for loop2function averageLoop(arr) {3 if (arr.length === 0) return 0;45 let sum = 0;6 for (let i = 0; i < arr.length; i++) {7 sum += arr[i];8 }9 return sum / arr.length;10}1112let numbers = [10, 20, 30, 40, 50];13console.log("Array:", numbers);14console.log("Average:", averageLoop(numbers));1516// Method 2: Using reduce17function averageReduce(arr) {18 if (arr.length === 0) return 0;1920 let sum = arr.reduce((acc, num) => acc + num, 0);21 return sum / arr.length;22}2324console.log("\nUsing reduce:", averageReduce([5, 10, 15, 20]));2526// Method 3: Using forEach27function averageForEach(arr) {28 if (arr.length === 0) return 0;2930 let sum = 0;31 arr.forEach(num => sum += num);32 return sum / arr.length;33}3435console.log("\nUsing forEach:", averageForEach([2, 4, 6, 8, 10]));3637// Method 4: One-liner with reduce38const average = arr => arr.length ? arr.reduce((a, b) => a + b) / arr.length : 0;3940console.log("\nOne-liner:", average([1, 2, 3, 4, 5]));4142// Method 5: With precision43function averagePrecise(arr, decimals = 2) {44 if (arr.length === 0) return 0;45 let avg = arr.reduce((a, b) => a + b) / arr.length;46 return parseFloat(avg.toFixed(decimals));47}4849console.log("\nWith precision:", averagePrecise([1, 2, 3], 2));
Output
Array: [ 10, 20, 30, 40, 50 ] Average: 30 Using reduce: 12.5 Using forEach: 6 One-liner: 3 With precision: 2
What's going on
arr.reduce((a, b) => a + b, 0) / arr.length. Length 0 → Infinity or NaN. Check length first.