Cyclic looping
by Net Deamon
HTML
<div>
Result
</div>
<div id="output">
</div>
JavaScript
var input = [[1,2,3],[4,5,6],[7,8,9]]
var input = [[1,2],[3,4]]
//input array
var input = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
//get the no of rows
var noOfRows = input.length
//get the no of cols
var noOfCols = input[0].length
//initialize i and j to 0
var i =0, j = 0;
//first we go by increasing var j
var status = "increasingJ";
//output array initalize to empty array
var output = []
//till output is no equal to 9, loop through
while(output.length != noOfCols * noOfRows ){
if(status == "increasingI"){
if( input[i] == undefined || input[i][j] == null){
i--;
j--;
status = "decreasingJ";
}else{
output.push(input[i][j]);
input[i][j] = null;
i++;
}
}
if(status == "increasingJ"){
if( input[j] == undefined || input[i][j] == null){
j--;
i++;
status = "increasingI";
}else{
output.push(input[i][j]);
input[i][j] = null;
j++;
}
}
if(status == "decreasingI"){
if( input[i] == undefined || input[i][j] == null){
i++;
j++;
status = "increasingJ";
}else{
output.push(input[i][j]);
input[i][j] = null;
i--;
}
}
if(status == "decreasingJ"){
if( input[j] == undefined || input[i][j] == null){
j++;
i--;
status = "decreasingI";
}else{
output.push(input[i][j]);
input[i][j] = null;
j--;
}
}
}
document.getElementById("output").innerHTML = output.toString();