https://leetcode-cn.com/problems/spiral-matrix/
给你一个 m
行 n
列的矩阵 matrix
,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
var spiralOrder = function(matrix) {
let result=[]
let dirction='row' // row nrow column ncolumn
while(matrix.length && matrix[0].length){
if(dirction==='row'){
let row = matrix[0]
result=[...result,...row]
dirction='column'
matrix.splice(0,1)
continue
}
else if(dirction==='nrow'){
let lastRow= matrix.pop()
lastRow.reverse()
result=[...result,...lastRow]
dirction='ncolumn'
continue
}
else if(dirction==='column'){
let columns =[]
matrix.forEach(row=>{
let last= row.pop()
columns.push(last)
})
result=[...result,...columns]
dirction='nrow'
continue
}else if(dirction==='ncolumn'){
let columns =[]
matrix.forEach(row=>{
let first= row.shift()
columns.push(first)
})
columns.reverse()
result=[...result,...columns]
dirction='row'
continue
}
}
return result
};