在 JavaScript 中查找数组中每个数组的平均值

javascriptweb developmentfront end technologyobject oriented programming更新于 2024/12/5 18:20:17

在给定的问题陈述中,我们得到了一个包含多个子数组的数组。因此,我们的目标是计算每个子数组的平均值,并将这些平均值存储在一个新数组中。并在 Javascript 中实现解决方案。

理解问题

问题给出了一个包含多个数组或嵌套数组的数组。每个子数组都包含一些数值。我们的任务是计算每个子数组的平均值,并将这些平均值收集到一个新数组中。例如,我们有这样的数组 [[4, 6], [2, 4], [6, 2]],因此第一个子数组 4 和 6 的平均值是 5,第二个数组 2 和 4 的平均值是 3,第三个数组 6 和 2 的平均值是 4。因此,子数组平均值的结果数组是 [5, 3, 4]。

给定问题的逻辑

为了实现代码,我们将遍历主数组,并且我们将一次访问每个数组块。在每个子数组中,我们将计算其自身项的总和,然后将该总和除以子数组的长度以获得平均值。然后,该平均值将添加到新数组中。实施解决方案后,我们将能够确定主数组中每个子数组的平均值。

算法

步骤 1:定义一个函数来获取输入数组的子数组的平均值。并将其命名为 calAvgOfArr。

步骤 2:我们需要子数组的平均值,因此我们需要一个数组来存储子数组的平均值,并将其命名为"平均值"。声明为空对象。

步骤 3:使用 for 循环遍历外部数组,直到使用 i 变量的 length 属性。

步骤 4:在上面的循环中,我们必须跟踪内部数组中项目的总和,因此定义一个名为 sum 的变量来存储总和值。

步骤 5:在第一个循环中,我们使用另一个循环遍历带有 j 变量的内部数组项目并将其添加到总和中。

步骤 6:平均值将通过将总和除以当前子数组或内部数组的长度来计算。

步骤 7:所有循环结束后,在获得每个内部数组的平均值后,将值插入我们在第二步中创建的数组中。

示例

//计算子数组平均值的函数
function calAvgOfArr(arr) {
   // 存储结果数组的数组
   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)。这意味着它可以有效地处理中等大小的数组。但如果数组大小变得非常大,那么代码的执行时间可能会比预期的要长。


相关文章


有用资源