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: 使用循环遍历外部数组直到其长度属性,使用变量i。
步骤4: 在上面的循环中,我们必须跟踪内部数组中项目的总和,因此定义一个变量sum来存储总和值。
步骤5: 在第一个循环内部,我们使用另一个循环来遍历内部数组项目,使用变量j,并将其添加到总和中。
步骤6: 通过将总和除以当前子数组或内部数组的长度来计算平均值。
步骤7: 一旦所有循环结束,在获取每个内部数组的平均值之后,将值插入到我们在第二步创建的数组中。
示例
//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)。这意味着它可以有效地处理适度大小的数组。但是,如果数组的大小变得非常大,那么代码执行可能会比预期的时间要长。