JavaScript 中使用 Reduce 方法求平均值


在本題中,我們的目標是利用 Javascript 的 reduce 方法獲取所有專案的平均值。為此,我們將建立一個函式,並將陣列作為引數傳入。

理解題意

任務是計算陣列中給定專案的平均值。我們必須使用 Javascript 的預定義方法 reduce 方法。例如,如果我們有一個數組 [1, 2, 3, 4, 5],則該陣列的專案的平均值為 3。(1 + 2 + 3 + 4 + 5) / 5 = 15 / 5 = 3。

問題的邏輯

由於我們必須在 Javascript 中使用 reduce 方法,因此我們將首先建立一個函式,該函式將以陣列作為輸入引數。在函式內部,我們將檢查陣列是否為空。如果為空,則函式應返回零;否則,我們將使用 reduce 方法計算陣列中所有元素的總和。然後,我們將總和除以陣列的長度以獲得平均值。

演算法

步驟 1:宣告一個函式來獲取陣列中所有專案或數字的平均值,並將其命名為 getAverage。

步驟 2:檢查 if-else 條件,判斷陣列是否為空。如果為空,則返回零,因為陣列中沒有任何專案。

步驟 3:否則,藉助 reduce 方法,我們將計算陣列中所有專案的總和。並將累加器的初始值設定為零。

步驟 4:將計算出的總和除以陣列的長度,以獲得元素的平均值。

步驟 5:最後返回專案的平均值。

示例

//function to get the average of elements
function getAverage(arr) {
   if (arr.length === 0) {
     return 0;
   }
   
   const sum = arr.reduce((acc, curr) => acc + curr, 0);
   const average = sum / arr.length;
   return average;
  }
 
const numbers = [1, 2, 2, 3, 4, 4, 5, 5];
const avg = getAverage(numbers);
console.log("Average is : ",avg);

輸出

Average is :  3.25

複雜度

如果 n 是輸入陣列的大小,則定義的演算法所花費的時間為 O(n)。出現這種複雜度的原因是,我們使用了 reduce 方法,該方法迭代陣列的每個元素一次以計算總和。

結論

在上面的程式碼中,我們使用了 reduce 方法,它是 Javascript 中一個強大的方法,用於對陣列進行計算。透過獲取所有專案的總和並將其除以陣列的長度,它非常有助於計算陣列的平均值。這是一種高效的方法,具有線性時間複雜度,適用於大型陣列。

更新於:2023年8月11日

857 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告