在 JavaScript 中对数组内的数组进行分块
在此问题陈述中,我们的目标是借助 JavaScript 功能获取数组内的分块数组。因此,基本上我们会将数组划分为较小的数组。
在数组内对数组进行分块是什么意思?
对数组进行分块意味着将数组项排列在大小相同的较小子数组中。或者我们可以说,在数组内对数组进行分块是指将大尺寸数组划分为较小的子数组或块的过程。因此,原始数组的项目被排列在一起到嵌套数组中,而不是具有单个平面数组。
我们考虑一个数组:['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'] 如果我们将此数组分块,块大小为 2,则输出数组将是:[ ['A', 'B'], ['C', 'D'], ['E', 'F'], ['G', 'H'] ]
我们可以看到,原始数组已被分成四个大小为 2 的块。其中,每个块代表较大数组内的一个单独数组。块大小表示子数组中存在的项目数。
理解问题
正如我们所见,什么是在数组中对数组进行分块!所以我们的任务是将数组分成较小的块子数组,如我们上面所见。我们可以根据需要更改块的大小,这也取决于数组的原始大小。
给定问题的逻辑
因为我们必须定义一个函数来生成给定数组的块。所以我们将定义一个函数并在函数中传递两个参数。第一个参数将是一个要分块的数组,大小将表示每个块的所需大小。
我们将创建一个空白的分块数组来存储结果块,并将其值初始化为零。该函数还将使用 while 循环来迭代原始数组。在每次迭代中,我们将从当前索引和大小中切出一部分数组。然后将其添加到分块数组中。之后,我们将按大小增加索引以移动到下一个块。
算法
步骤 1:此算法的起点是声明一个函数来执行在数组内分块数组的任务。此函数接受两个参数:数组和块大小。
步骤 2:执行迭代后,声明一个空白数组来存储分块数组。
步骤 3:借助 while 循环,我们将迭代数组项。在此循环中,我们将使用切片方法从起始索引开始,按给定块大小的大小对数组进行切片。然后使用块的大小增加索引值。
步骤 4:将分块数组存储在我们在第二步中定义的数组中。并将输出显示到控制台。
上述算法的代码
示例
//获取分块数组的函数
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),因为我们将所有项目存储在与输入数组长度相同的新数组中。
结论
我们在代码中给出了一种对给定数组进行分块的简单方法。该函数接受两个参数,如数组和块大小作为输入。并返回一个包含项目块的新数组。该函数具有线性时间复杂度。
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

