将一维数组拆分为二维数组 JavaScript
javascriptweb developmentobject oriented programming更新于 2025/10/12 21:00:17
我们需要编写一个函数,该函数将一维数组作为第一个参数,将数字 n 作为第二个参数,并且我们必须在父数组内创建 n 个子数组(**如果可能),并相应地将元素划分到其中。
**如果数组包含 9 个元素,并且我们要求创建 4 个子数组,则在每个子数组中除以 2 个元素将创建 5 个子数组,在每个子数组中除以 3 个元素将创建 3 个子数组,因此在这种情况下,我们必须回退到最近的最低级别(在本例中为 3),因为我们的要求是在每个子数组中分配相等数量的元素,但在某些特殊情况下最后一个子数组除外。
例如 −
// 如果输入数组是: const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']; // 并且数字是 2 //那么输出应该是: const output = [ [ 'A', 'B', 'C', 'D', 'E' ], [ 'F', 'G', 'H', 'I' ] ];
让我们来编写该函数的代码 −
示例
const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'];
const splitArray = (arr, rows) => {
const itemsPerRow = Math.ceil(arr.length / rows);
return arr.reduce((acc, val, ind) => {
const currentRow = Math.floor(ind / itemsPerRow);
if(!acc[currentRow]){
acc[currentRow] = [val];
}else{
acc[currentRow].push(val);
};
return acc;
}, []);
};
console.log(splitArray(arr, 2));
输出
控制台中的输出将是 −
[ [ 'A', 'B', 'C', 'D', 'E' ], [ 'F', 'G', 'H', 'I' ] ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

