如何使用JavaScript将一维数组转换成行优先的二维数组,例如将数组 ['A', 'B', 'C', 'D', 'E'] 转换为 2x3 的矩阵?
时间: 2024-10-22 09:08:52 浏览: 22
在JavaScript中,可以使用嵌套循环将一维数组转换为行优先的二维数组。假设你想将给定的一维数组 `['A', 'B', 'C', 'D', 'E']` 转换成2x3的矩阵,你可以这样做:
```javascript
function convertToMatrix(arr, rows, cols) {
// 检查输入的长度是否能整除指定的行数和列数
if (arr.length % rows !== 0 || arr.length / rows < cols) {
throw new Error('Array length does not fit the specified row and column count');
}
let matrix = [];
for (let i = 0; i < rows; i++) {
let newRow = [];
for (let j = 0; j < cols; j++) {
newRow.push(arr[i * cols + j]); // 取当前行的元素
}
matrix.push(newRow); // 将新行添加到矩阵
}
return matrix;
}
// 示例:将['A', 'B', 'C', 'D', 'E'] 转换为2x3的矩阵
const inputArr = ['A', 'B', 'C', 'D', 'E'];
const result = convertToMatrix(inputArr, 2, 3);
console.log(result); // 输出:[ ['A', 'B', 'C'], ['D', 'E', undefined] ]
```
在这个例子中,如果数组长度不能均匀分配到指定的行和列,函数会抛出错误。注意,由于数组长度为5,而2x3矩阵需要6个元素,所以最后一行可能只有3个元素。
阅读全文