在 JavaScript 中重塑二维数组
问题
我们需要编写一个JavaScript函数,该函数接受一个二维数字数组arr作为第一个参数和两个数字r和c,分别代表所需矩阵的行 号和列 号。
我们的函数应该形成并返回一个新的二维数组,其中指定的行和列的行遍历顺序与它们在输入数组中的顺序相同。
例如,如果函数的输入是-
const arr = [ [6, 7], [8, 9] ]; const r = 1, c = 4;
那么输出应该是-
const output = [[6, 7, 8, 9]];
输出说明
arr的行遍历是[6,7,8,9]。新的重塑矩阵是一个1*4矩阵,使用前面的列表逐行填充
示例
以下是代码-
const arr = [
[6, 7],
[8, 9]
];
const r = 1, c = 4;
const reshapeArray = (arr, r, c) => {
if (r * c !==arr.length* arr[0].length) {
return arr
}
const res = []
let row = []
arr.forEach(items => items.forEach((num) => {
row.push(num)
if (row.length === c) {
res.push(row)
row = []
}
}))
return res
};
console.log(reshapeArray(arr, r, c));输出结果以下是控制台输出-
[[6, 7, 8, 9]]