-
忽然笑
function circle(array) { return array.length < 2 ? array[0] : array.shift().concat( array.map(e=>e.pop()), circle(array.map(e=>e.reverse()).reverse()) );}// testcircle([[1,2,3,4],[5,6,7,8],[9,10,11,12]]);
-
凤凰求蛊
function printMatrix(matrix) { if (matrix == null || matrix.length == 0) { return; } var rows = matrix.length; var cols = matrix[0].length; var start = 0; var result = []; while (cols > start * 2 && rows > start * 2) { var endX = cols - 1 - start; var endY = rows - 1 - start; //从左到右打印一行 for (var i = start; i <= endX; i++) { result.push(matrix[start][i]); } //从上到下打印一列 if (start < endY) { for (var i = start + 1; i <= endY; i++) { result.push(matrix[i][endX]); } } //从右到左打印一行 if (start < endX && start < endY) { for (var i = endX - 1; i >= start; i--) { result.push(matrix[endY][i]); } } //从下到上打印一列 if (start < endX && start < endY - 1) { for (var i = endY - 1; i >= start + 1; i--) { result.push(matrix[i][start]); } } start++; } return result}
-
哆啦的时光机
var test = function (matrix) { var x, y, border = [x = y = 0, matrix.length - 1], result = []; while (x <= border[1] || y <= border[1]) { result.push(matrix[y][x]); if (y == border[0] && x < border[1]) x++; else if (x == border[1] && y < border[1]) y++; else if (y == border[1] && x > border[0]) x--; else if (x == border[0] && y > border[0]) y--; if (x == border[0] && y == border[0]) { y = x = ++border[0]; border[1]--; } } return result;}
-
HUX布斯
原答案var nums = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16";var arr = nums.split(',');for(var i in arr){ i-=0; if(i>0&&(i+1)%4==0){ var str = arr.slice(i-3,i+1).join(' '); console.log(str) } }我理解错误了
-
米脂
var arr = [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],[13, 14, 15, 16]]arr.forEach(row => { row.forEach(n => console.log(n))})