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();