重塑 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 次瀏覽

開啟你的 職業生涯

完成課程可獲得認證

開始吧!
廣告
© . All rights reserved.