// 生成数组, 从大到小顺时针螺旋 function generateSpiralArray(rows, cols) { let arr = Array.from({ length: rows }, () => Array.from({ length: cols })); let value = 1; let top = 0, bottom = rows - 1, left = 0, right = cols - 1; while (top <= bottom && left <= right) { // 左 => 右 for (let i = left; i <= right; i++) { arr[top][i] = value++; } top++; // 上 => 下 for (let i = top; i <= bottom; i++) { arr[i][right] = value++; } right--; // 右 => 左 if (top <= bottom) { for (let i = right; i >= left; i--) { arr[bottom][i] = value++; } bottom--; } // 下 => 上 if (left <= right) { for (let i = bottom; i >= top; i--) { arr[i][left] = value++; } left++; } } return arr; } const result2 = generateSpiralArray(6, 6);