回型遍历(螺旋遍历)(js)

来源:互联网 发布:vba 数组赋值 编辑:程序博客网 时间:2024/06/14 21:58

思路很简单 纵向走, 走一步,删一个,,横向走 ,走一行,删一行

//没优化  简单写了下   var arr = [    [1,2,3,4],    [12,13,14,5],    [11,16,15,6],    [10,9,8,7]];var newArr=JSON.parse(JSON.stringify(arr));consoles(newArr,'left')function consoles(newArr,direction){    if(newArr.length==0)return switch (direction) {    case 'left':                    for(var left=0; left<newArr[0].length;left++){                        console.log(newArr[0][left]);                        //newArr[0].splice(0,1);                    }                     newArr.splice(0,1);                    consoles(newArr,'down');         break;    case 'right':    var index=newArr.length-1;        newArr[index]=newArr[index].reverse();         for(var right=0;right< newArr[index].length;right++){             console.log(newArr[index][right]);        }         newArr.splice(index,1);         consoles(newArr,'up');         break;    case 'down':         for(var down=0;down< newArr.length;down++){            console.log(newArr[down][newArr[down].length-1]);            newArr[down].splice(newArr[down].length-1,1);         }         consoles(newArr,'right');         break;     case 'up':         for(var up=0;up<newArr.length;up++){            console.log(newArr[newArr.length-up-1][0]);            newArr[newArr.length-up-1].splice(0,1);          }         consoles(newArr,'left')         break; break;     default:         break; }}

结果是 控制台打印 1-16

原创粉丝点击