在 JavaScript 中查詢陣列中每個陣列的平均值


在給定的問題陳述中,我們得到一個包含多個子陣列的陣列。因此,我們的目標是計算每個子陣列的平均值並將這些平均值儲存在一個新陣列中。並在Javascript中實現該解決方案。

理解問題

問題給出了一個包含多個數組或巢狀陣列的陣列。每個子陣列包含一些數值。我們的任務是計算每個子陣列的平均值並將這些平均值收集到一個新陣列中。例如,我們有這樣的陣列 [[4, 6], [2, 4], [6, 2]],則第一個子陣列 4 和 6 的平均值為 5,第二個陣列 2 和 4 的平均值為 3,第三個陣列 6 和 2 的平均值為 4。因此,子陣列平均值的結果陣列為 [5, 3, 4]。

給定問題的邏輯

為了實現程式碼,我們將遍歷主陣列,每次訪問一個數組塊。在每個子陣列中,我們將計算其自身專案的總和,並將該總和除以子陣列的長度以獲得平均值。然後,此平均值將新增到新陣列中。實現解決方案後,我們將能夠確定主陣列內每個子陣列的平均值。

演算法

步驟 1:定義一個函式來獲取輸入陣列的子陣列的平均值。並將其命名為 calAvgOfArr。

步驟 2:我們需要子陣列的平均值,為此,我們需要一個數組來儲存子陣列的平均值,並將其命名為“averages”。它被宣告為空物件。

步驟 3:使用 for 迴圈遍歷外部陣列,直到使用 i 變數達到其長度屬性。

步驟 4:在上面的迴圈內,我們必須跟蹤內部陣列中專案的總和,因此定義一個名為 sum 的變數來儲存總和值。

步驟 5:在第一個迴圈內,我們使用另一個迴圈來使用 j 變數遍歷內部陣列項並將它們新增到 sum 中。

步驟 6:平均值將透過將 sum 除以當前子陣列或內部陣列的長度來計算。

步驟 7:所有迴圈結束後,在獲得每個內部陣列的平均值後,將值插入我們在步驟 2 中建立的陣列中。

示例

//Function to calculate the average of subarrays
function calAvgOfArr(arr) {
   // Array to store the result array
   const averages = [];

   for (let i = 0; i < arr.length; i++) {
      let sum = 0;
      for (let j = 0; j < arr[i].length; j++) {
         sum += arr[i][j];
      }

      const average = sum / arr[i].length;
      averages.push(average);
   }

   return averages;
}
const array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const result = calAvgOfArr(array);
console.log(result);

輸出

[ 2, 5, 8 ]

複雜度

以下問題陳述使用 javascript 方法(如 for 迴圈和 push 方法)來解決,這些方法在最壞情況下以 O(n * m) 的時間複雜度遍歷陣列元素。問題陳述的空間複雜度為 O(m)。

結論

使用巢狀 for 迴圈,我們很容易計算出 Javascript 中每個子陣列的平均值。演算法的複雜度為 O(n * m)。這意味著它可以有效地處理中等大小的陣列。但是,如果陣列大小變得非常大,則程式碼可能需要比預期更長的時間才能執行。

更新於:2023年8月14日

524 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.