Spiral algorithm n=4
by mspinks
JavaScript
input = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
var output = [];
var traverseSpiral = function(n, level=0) {
var x=0;
var y=0;
//TOP
while (x<n) {
output.push(input[level+y][level+x]);
x++;
}
x--;
y++;
//RIGHT
while (y<n) {
output.push(input[level+y][level+x]);
y++;
}
y--;
x--;
//BOTTOM
while (x>=0) {
output.push(input[level+y][level+x]);
x--;
}
x++;
y--;
//LEFT
while (y>0) {
output.push(input[level+y][level+x]);
y--;
}
y++;
n = n - 2;
if (n>1) {
return traverseSpiral(n,level+1);
} else if (n==1) {
output.push(input[y][x+1]);
return output;
} else {
return output;
}
}
console.log(traverseSpiral(3));