ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ 2 มิติของตัวเลข arr เป็นอาร์กิวเมนต์แรกและตัวเลขสองตัว r และ c แทน แถว ตัวเลขและ คอลัมน์ จำนวนเมทริกซ์ที่ต้องการตามลำดับ
ฟังก์ชันของเราควรสร้างและส่งกลับอาร์เรย์ 2 มิติใหม่โดยมีแถวและคอลัมน์ที่ระบุใน การข้ามผ่านแถว เดียวกัน เรียงลำดับตามที่อยู่ในอาร์เรย์อินพุต
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
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]]