划分数组 – JavaScript
javascriptweb developmentfront end technologyobject oriented programming更新于 2025/12/15 7:08:17
假设,我们需要编写一个函数,该函数以字符串/数字文字数组 arr 作为第一个参数,以数字 n 作为第二个参数。
我们需要返回一个包含 n 个子数组的数组,每个子数组最多包含 arr.length / n 个元素。元素的分布应该是这样的 −
- 第一个元素放在第一个子数组中,第二个元素放在第二个子数组中,第三个元素放在第三个子数组中,依此类推。
- 一旦每个子数组中都有一个元素,我们再次开始用第二个元素填充第一个子数组。
- 同样,当所有子数组都有两个元素时,我们才会在第一个数组中填充第三个元素,依此类推。
例如 −
如果输入数组是 −
const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];
如果数字 n 为 3,则输出应为 −
const output = [ [ 656, 67, 54 ], [ 756, 43, 768 ], [ 5345, 76, 34 ] ];
我们将对原始数组执行 Array.prototype.reduce() 方法以构造所需的数组。
示例
以下是代码 −
const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];
const divideArray = (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(divideArray(input, 3));
输出
这将在控制台中产生以下输出 −
[ [ 656, 67, 54 ], [ 756, 43, 768 ], [ 5345, 76, 34 ] ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

