如何用 JavaScript 算出陣列的平均數?
2023年2月11日
💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源
在入門的 JavaScript 面試中,很常會出現陣列操作的考題,來確保申請者有基本的 JavaScript 能力,算出陣列平均數,即是很常考的。給定一個含有數字的陣列,例如 [10, 20, 30, 40, 50]
,寫一個函式來計算這個陣列的平均數。
這篇會提供兩個解法:
- 基本的
for
迴圈 (for
loop) 解法 - 函式編程 (functional programming) 的解法
for
迴圈 (for
loop) 解法
function getAverage(array) {
let sum = 0;
for (let i = 0; i < array.length; i++) {
sum += array[i];
}
return sum / array.length;
}
上面這段程式碼的邏輯如下:
- 先宣告一個
sum
- 透過
for
迴圈迭代過陣列,並在迭代的過程中把每個數字加起來,最後會得到加總 - 在加總後再除以陣列的長度 (陣列的長度代表有幾個數字在陣列當中),就會得到平均數
函式編程 (functional programming) reduce
解法
在這一題的面試中,面試官可能會進一步追問你會不會用函式編程的方法來解這一題。下面我們可以透過 reduce
這個 JavaScript 內建的陣列方法實踐:
- 透過
reduce
來迭代過陣列的每一個數字 - 在迭代的過程中把每個
currentValue
都加總起來 - 最後再將結果除以陣列長度,即會得到平均數
const getAverage = (array) =>
array.reduce((sum, currentValue) => sum + currentValue, 0) / array.length;