在 JavaScript 中对数组进行分块
javascriptweb developmentobject oriented programming更新于 2025/10/10 0:12:17
我们需要编写一个函数 chunk(),该函数将字符串/数字文字数组 arr 作为第一个参数,将数字 n 作为第二个参数。
我们需要返回一个包含 n 个子数组的数组,每个子数组最多包含 arr.length / n 个元素。元素的分布应如下所示 −
第一个元素放在第一个子数组中,第二个元素放在第二个子数组中,第三个元素放在第三个子数组中,依此类推。一旦每个子数组中都有一个元素,我们再次开始用第二个元素填充第一个子数组。类似地,当所有子数组只有两个元素时,我们才会在第一个数组中填充第三个元素,依此类推。
例如 −
// 如果输入数组是: const input = [1, 2, 3, 4, 5, 6]; //那么输出应该是: const output = [ [1, 4], [2, 5], [3, 6] ];
让我们为这个函数编写代码,我们将对原始数组使用 Array.prototype.reduce() 方法来构造所需的数组。此代码将是 −
示例
const input = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const chunk = (arr, size) => {
return arr.reduce((acc, val, ind) => {
const subIndex = ind % size;
if(!Array.isArray(acc[subIndex])){
acc[subIndex] = [val];
} else {
acc[subIndex].push(val);
};
return acc;
}, []);
};
console.log(chunk(input, 4));
输出
控制台中的输出将是 −
[ [ 1, 5, 9 ], [ 2, 6 ], [ 3, 7 ], [ 4, 8 ] ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

