Print matrix spiral

by Alex Myronov

JavaScript

const matrix = [
	[1, 2, 3, 4, 5],
  [16, 17, 18, 19, 6],
  [15, 24, 25, 20, 7],
  [14, 23, 22, 21, 8],
  [13, 12, 11, 10, 9],
]

const printSpiral = (mx) => {
	const rows = mx.length
  const cols = mx[0].length
  
  let rowStart = 0
  let rowEnd = rows - 1
  let colStart = 0
  let colEnd = cols - 1
  
  while (rowStart <= rowEnd || colStart <= colEnd) {
  	for (let i = colStart; i <= colEnd; i++) {
    	console.log(mx[rowStart][i] + ' - ')
    }
    rowStart++
    
    for (let i = rowStart; i <= rowEnd; i++) {
      console.log(mx[i][colEnd] + ' - ')
    }
    colEnd--
    
    for (let i = colEnd; i >= colStart; i--) {
      console.log(mx[rowEnd][i] + ' - ')
    }
    rowEnd--
    
    for (let i = rowEnd; i >= rowStart; i--) {
      console.log(mx[i][colStart] + ' - ')
    }
    colStart++
  }
}

printSpiral(matrix)