22 lines
515 B
JavaScript
22 lines
515 B
JavaScript
spiralArray = function (edge) {
|
|
var arr = Array(edge),
|
|
x = 0, y = edge,
|
|
total = edge * edge--,
|
|
dx = 1, dy = 0,
|
|
i = 0, j = 0;
|
|
while (y) arr[--y] = [];
|
|
while (i < total) {
|
|
arr[y][x] = i++;
|
|
x += dx; y += dy;
|
|
if (++j == edge) {
|
|
if (dy < 0) {x++; y++; edge -= 2}
|
|
j = dx; dx = -dy; dy = j; j = 0;
|
|
}
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
// T E S T:
|
|
arr = spiralArray(edge = 5);
|
|
for (y= 0; y < edge; y++) console.log(arr[y].join(" "));
|