在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 一個4*4矩陣如何輸出

一個4*4矩陣如何輸出

1 2  3  4
5 6  7  8
9 10 11 12
13 14 15 16

一個4*4的矩陣
如何順時針由外往里輸出
1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10
// 不會要套4個for把?

回答
編輯回答
故林

原答案

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)
     }
 
}

我理解錯誤了

2017年7月1日 05:30
編輯回答
寫榮
function circle(array) {
  return array.length < 2 ? array[0] : array.shift().concat(
    array.map(e=>e.pop()), 
    circle(array.map(e=>e.reverse()).reverse())
  );
}
// test
circle([[1,2,3,4],[5,6,7,8],[9,10,11,12]]);
2017年1月22日 03:08
編輯回答
舊螢火
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
}
2018年4月14日 09:23
編輯回答
刮刮樂
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))
})
2018年6月5日 15:12
編輯回答
蔚藍色
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;
}
2018年8月26日 13:58