在 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 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告