Computer >> Máy Tính >  >> Lập trình >> Javascript

Định hình lại mảng 2-D trong JavaScript

Vấn đề

Chúng tôi bắt buộc phải viết một hàm JavaScript lấy mảng số 2-D, arr, làm đối số đầu tiên và hai số, r và c, đại diện cho hàng số và cột số lượng ma trận mong muốn, tương ứng.

Hàm của chúng tôi sẽ tạo và trả về một mảng 2-D mới với các hàng và cột được chỉ định trong cùng một di chuyển ngang hàng sắp xếp như chúng ở trong mảng đầu vào.

Ví dụ:nếu đầu vào của hàm là -

const arr = [
   [6, 7],
   [8, 9]
];
const r = 1, c = 4;

Sau đó, kết quả đầu ra phải là -

const output = [[6, 7, 8, 9]];

Giải thích đầu ra

di chuyển ngang hàng của arr là [6, 7, 8, 9]. Ma trận được định hình lại mới là ma trận 1 * 4, hãy điền nó theo từng hàng bằng cách sử dụng danh sách trước đó

Ví dụ

Sau đây là mã -

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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

[[6, 7, 8, 9]]