题目:
输出一个矩阵,依照从内向里以顺时针的程序顺次打印出每一个数字。
答题:

/** * @param {number[][]} matrix * @return {number[]} */ var spiralOrder = function(matrix) {  let res = []  let tem = ''  try{      while(matrix.length){          let top = matrix.shift()          for(let i =0;i<top.length;i++){              tem = top[i]              if(tem !== undefined){              res.push(tem)              }else{                  return res              }          }          for(let i=0;i<matrix.length;i++){              tem = matrix[i].pop()                            if(tem !== undefined){              res.push(tem)              }else{                  return res              }          }          let bottom = matrix.pop()          for(let i=bottom.length - 1;i>-1;i--){              tem = bottom[i]               if(tem !== undefined){              res.push(tem)              }else{                  return res              }          }          for(let i=matrix.length - 1;i>-1;i--){              tem = matrix[i].shift()               if(tem !== undefined){              res.push(tem)              }else{                  return res              }                        }      }  }catch(err){      return res  }    return res};

把数组的每一行,每一列当成一个整体,每个循环过程中用到的话就要删除掉。
也就是先删除最下面一行,再删除最右面一列,而后删除最初一行,最初删除最右边一列。
在遍历过程中有的值可能就没有了,这时候把res返回即可。
毕竟呈现undefined的时候,数组中就曾经没有内容了