推荐答案
function chunk(arr, size) { const result = []; for (let i = 0; i < arr.length; i += size) { result.push(arr.slice(i, i + size)); } return result; }
本题详细解读
题目分析
题目要求实现一个函数 chunk(arr, size)
,该函数接受两个参数:
arr
:需要分割的数组。size
:每个块的大小。
函数的目标是将数组 arr
按照 size
的大小分割成多个块,并返回这些块组成的数组。
解题思路
- 初始化结果数组:首先创建一个空数组
result
,用于存储分割后的块。 - 遍历原数组:使用
for
循环遍历原数组arr
,每次遍历的步长为size
。 - 分割数组:在每次循环中,使用
slice
方法从当前索引i
开始,截取长度为size
的子数组,并将其推入result
数组中。 - 返回结果:循环结束后,返回
result
数组。
代码解释
result.push(arr.slice(i, i + size))
:slice
方法用于从数组中提取从索引i
到i + size
的元素(不包括i + size
),并将这些元素作为一个新的子数组推入result
中。i += size
:每次循环后,索引i
增加size
,以便下一次循环从新的位置开始截取。
示例
const arr = [1, 2, 3, 4, 5, 6, 7]; const size = 3; console.log(chunk(arr, size)); // 输出: [[1, 2, 3], [4, 5, 6], [7]]
在这个示例中,数组 [1, 2, 3, 4, 5, 6, 7]
被分割成了三个块,每个块的大小为 3
,最后一个块的大小为 1
。