循环…let n = 5; var generateMatrix = function (n) { const matrix = new Array(n); for (let i = 0; i < n; i++) { //生成空的数组 matrix[i] = new Array(n); } console.log(matrix); let num = 1; let left = 0, right = n - 1, top = 0, bottom = n - 1; while (num <= n * n) { for (let i = left; i <= right; i++) { console.log('1*--', top, i, '=' + num); matrix[top][i] = num num++ } top++; for (let i = top; i <= bottom; i++) { console.log('2*--', i, right, '=' + num); matrix[i][right] = num num++; } right--; for (let i = right; i >= left; i--) { console.log('3*--', bottom, i, '=' + num); matrix[bottom][i] = num num++; } bottom--; for (let i = bottom; i >= top; i--) { console.log('4*--', i, left, '=' + num); matrix[i][left] = num num++; } left++; console.log(num, 'left =' + left, 'right =' + right, " top =" + top, "bottom =" + bottom); } // return matrix; }; console.log(generateMatrix(n));