// 左に回転する関数 function rotate(arr) { //この中を実装する } const rect = [ [6, 1, 8], [7, 5, 3], [2, 9, 4], ] let r = rect for (let i = 0; i < 5; i++) { console.log("---") for (let j = 0; j < r.length; j++) { console.log(r[j]) } r = rotate(r) }
出力
--- [ 6, 1, 8 ] [ 7, 5, 3 ] [ 2, 9, 4 ] --- [ 8, 3, 4 ] [ 1, 5, 9 ] [ 6, 7, 2 ] --- [ 4, 9, 2 ] [ 3, 5, 7 ] [ 8, 1, 6 ] --- [ 2, 7, 6 ] [ 9, 5, 1 ] [ 4, 3, 8 ] --- [ 6, 1, 8 ] [ 7, 5, 3 ] [ 2, 9, 4 ]
長方形でも回転するように
const rect = [ [6, 1, 8, 2], [7, 5, 3, 4], [2, 9, 4, 1], ]
解答例
function rotate(arr) { const ret = [] for (let i = 0; i < arr[0].length; i++) { const a = [] for (let j = 0; j < arr.length; j++) { const k = arr[0].length - i - 1 a.push(arr[j][k]) } ret.push(a) } return ret } const rect = [ [6, 1, 8], [7, 5, 3], [2, 9, 4], ] let r = rect for (let i = 0; i < 5; i++) { console.log("---") for (let j = 0; j < r.length; j++) { console.log(r[j]) } r = rotate(r) }