JavaScript 数组内部分块数组

JavaScript 数组内部分块数组

在这个问题说明中,我们的目标是通过JavaScript功能获取数组内的分块数组。所以基本上我们将把一个数组分成小的数组。

什么是数组内块化数组的含义

块化数组的意思是将数组项按相同大小划分为较小的子数组。或者我们可以说,在数组内部的块化数组是将大型大小数组分成较小的子数组或块的过程。因此,原始数组的项集合在嵌套数组中排列在一起,而不是一个单一的平坦数组。

让我们考虑一个数组:[‘A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’],如果我们将此数组用大小为2的块分块,则输出数组将是:[ [‘A’,’B’],[‘C’,’D’],[‘E’,’F’],[‘G’,’H’]]

我们可以看到这里原始数组已被分成四个大小为2的块。在这里,每个块表示较大数组内部的一个单独数组。块大小表示子数组中存在的项目数。

理解问题

如我们所见,块内的块化数组是什么!因此,我们的任务是将数组分为较小的块子数组,如我们上面所示。我们可以根据需要更改块的大小,这也取决于数组的原始大小。

给定问题的逻辑

由于我们需要为给定数组创建块,所以我们将定义一个函数。因此,我们将定义一个函数并在函数内部传递两个参数。第一个参数将是要分块的数组,而size将表示每个块的期望大小。

我们将创建一个空的块数组来存储结果块,并将其值初始化为零。函数还将使用while循环来迭代原始数组。在每次迭代中,我们将从当前索引和大小中切片数组的一部分。然后将其添加到块数组中。之后,我们将通过大小增加索引值以移动到下一个块。

步骤

步骤1: 该算法的起点是声明一个用于执行数组内部切块任务的函数。此函数接受两个参数:数组和块大小。

步骤2: 声明一个空数组,用于在执行迭代后存储切块后的数组。

步骤3: 使用while循环来迭代数组项。在此循环内部,我们将使用slice方法从起始索引处切片大小为给定块大小的数组大小。并递增索引值与块大小。

步骤4: 将切块数组存储在我们在第2步中定义的数组中。并将输出显示到控制台。

以上算法的代码

示例

//Function to get the chunking array
function chunkArray(arr, size) {
   const chunkedArr = [];
   let index = 0;

   while (index < arr.length) {
      chunkedArr.push(arr.slice(index, index + size));
      index += size;
   }
   return chunkedArr;
}
const originalArray = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
const chunkSize = 3;

const chunkedArray = chunkArray(originalArray, chunkSize);
console.log(chunkedArray);

输出

[ [ 11, 12, 13 ], [ 14, 15, 16 ], [ 17, 18, 19 ], [ 20 ] ]

复杂度

因为我们需要利用while循环逐个迭代项目来对给定的数组进行分块,所以函数生成分块数组所需的时间是O(n)。其中,n是提供的数组的长度。存储分块数组的空间复杂度也是O(n),因为我们将所有项目存储在与输入数组相同长度的新数组中。

结论

我们在代码中提供了一种直接的方式来对给定的数组进行分块。该函数接受两个参数,即数组和块大小作为输入。并返回一个包含项目块的新数组。该函数具有线性时间复杂度。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程