如何用 JavaScript 算出陣列的平均數?

2023年2月11日

💎 加入 E+ 成長計畫 與超過 300+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

在入門的 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;
}

上面這段程式碼的邏輯如下:

  1. 先宣告一個 sum
  2. 透過 for 迴圈迭代過陣列,並在迭代的過程中把每個數字加起來,最後會得到加總
  3. 在加總後再除以陣列的長度 (陣列的長度代表有幾個數字在陣列當中),就會得到平均數

函式編程 (functional programming) reduce 解法

在這一題的面試中,面試官可能會進一步追問你會不會用函式編程的方法來解這一題。下面我們可以透過 reduce 這個 JavaScript 內建的陣列方法實踐:

  1. 透過 reduce 來迭代過陣列的每一個數字
  2. 在迭代的過程中把每個 currentValue 都加總起來
  3. 最後再將結果除以陣列長度,即會得到平均數
const getAverage = (array) =>
  array.reduce((sum, currentValue) => sum + currentValue, 0) / array.length;
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們