JavaScript 基礎

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

AI 練習作答

方法一:reduce(最常見)

function average(arr) {
  if (arr.length === 0) return 0;
  const sum = arr.reduce((acc, val) => acc + val, 0);
  return sum / arr.length;
}

average([1, 2, 3, 4, 5]); // 3

方法二:for 迴圈

function average(arr) {
  if (arr.length === 0) return 0;
  let sum = 0;
  for (const num of arr) {
    sum += num;
  }
  return sum / arr.length;
}

方法三:搭配 Math 與 Spread

// 不推薦用在大陣列(call stack 限制)
function average(arr) {
  const sum = arr.reduce((a, b) => a + b, 0);
  return sum / arr.length;
}

一行版本

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

avg([10, 20, 30]); // 20

注意事項

  • 空陣列要特別處理,避免除以 0 得到 NaN
  • 若陣列中有非數字元素,reduce 可能得到 NaN,需事先過濾
function safeAverage(arr) {
  const nums = arr.filter(n => typeof n === 'number' && !isNaN(n));
  if (nums.length === 0) return 0;
  return nums.reduce((a, b) => a + b, 0) / nums.length;
}

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分