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 中一個強大的方法,用於對陣列進行計算。透過獲取所有專案的總和並將其除以陣列的長度,它非常有助於計算陣列的平均值。這是一種高效的方法,具有線性時間複雜度,適用於大型陣列。
廣告