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 中一个强大的方法,用于对数组进行计算。通过获取所有项目的总和并将其除以数组的长度,它非常有助于计算数组的平均值。这是一种高效的方法,具有线性时间复杂度,适用于大型数组。

更新于:2023年8月11日

857 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.