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