在 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]]