重塑 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]]
广告