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

更新于: 21-4-2021

814 次浏览

开启你的 职业生涯

完成课程可获得认证

开始吧!
广告