推荐答案
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。