如何用 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;