使用 JavaScript 中的 Reduce 方法求平均值

javascriptweb developmentfront end technologyobject oriented programming更新于 2024/12/4 3:24:17

在给定的问题陈述中,我们的目标是借助 Javascript 的 Reduce 方法获取所有项目的平均值。因此,为了完成此任务,我们将创建一个函数并将一个数组作为参数。

理解问题陈述

我们给出了一个任务来计算数组中给定项目的平均值。我们必须使用 Reduce 方法,这是 Javascript 的预定义方法。例如,如果我们有一个数组 [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 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("平均值为: ",avg);

输出

平均值为:3.25

复杂度

如果 n 是输入数组的大小,则定义算法所需的时间为 O(n)。这种复杂性的原因是,我们使用了 reduce 方法,该方法迭代数组的每个元素一次以计算总和。

结论

在上面的代码中,我们使用了 reduce 方法,这是 Javascript 中用于对数组进行计算的强大方法。通过获取所有项目的总和并将其除以数组的长度来计算数组的平均值非常有用。这是一种具有线性时间复杂度的有效方法,适用于大型数组。


相关文章


有用资源