# 矩阵

# 螺旋矩阵

export default (arr) => {
  // 处理每一圈的数据遍历过程
  let map = (arr, r=[]) => {
     for(let i=0, len=arr.length; i<len; i++){
       if(i===0){
         r.concat(arr[i])
       }else if(i===len-1){
         r.concat(arr[i].reverse())
       }else{
         r.push(arr[i].pop())
       }
     }
     arr.shift();
     arr.pop();
     for(let i=arr.length-1;i>=0;i--){
       r.push(arr[i].shift())
     }
     if(arr.length){
       return map(arr, r)
     }else{
       return r;
     }
  }
  return map(arr, [])
}

# 旋转图像

export default (arr)=>{
  // 获取n的维度
  let vecor = arr.length;
  // 垂直翻转
  for(let i=0,len=vecor/2;i<len;i++){
     for(let j=0,tmp; j<vecor; j++){
       tmp=arr[i][j]
       arr[i][j]=arr[vecor-i-1][j]
       arr[vecor-i-1][j]=tmp
     }
  }
  // 对角线翻转
  for(let i=0;i<vecor;i++){
    for(let j=0,tmp;j<i;j++){
       tmp = arr[i][j]
       arr[i][j] = arr[j][i]
       arr[j][i] = tmp
    }
  }
  return arr;
}