let row = parseInt(prompt(“请输入行数:”));
// 起始点
let start = row%2===0?[row/2-1,row/2-1]:[(row/2)|0,(row/2)|0];
// console.log(start);
let count = 1;
let arr = [];
// 方向 右 下 左 上
let dir = [[0,1],[1,0],[0,-1],[-1,0]];
let index = 0;
// 创建二维数组
for(let i=0; i<row; i++){
arr[i] = [];
for(let j=0; j<row; j++){
arr[i][j] = 0;
}
}
console.log(arr);
for(let i=1; i<=row**2; i++){
// 赋值
arr[start[0]][start[1]] = count++;
// 下一个目标位置上是否存在值
if(arr[start[0] + dir[index][0]][start[1] + dir[index][1]] === 0){
// 使位置变化
start[0] = start[0] + dir[index][0];
start[1] = start[1] + dir[index][1];
}else{
index--;
if(index===-1){
index = 3;
}
start[0] = start[0] + dir[index][0];
start[1] = start[1] + dir[index][1];
}
index++;
if(index===4){
index = 0;
}
}