Javascript for循环跳过矩阵内的旋转

时间:2017-01-16 18:01:47

标签: javascript for-loop matrix rotation skip

我现在一直在敲打我的脑袋,试图弄清楚为什么我的for循环会在我的矩阵中跳过一个旋转。我试图打印[[1,2,3,4,5],[2,3,4,5,6],[4,5,6,7,8]],这是整体基质

function solve(args)
{
    let arr = args[0].split(' ').map(Number),
        rows = +arr[0],
        cols = +arr[1];

    let matrix = new Array(rows);
    matrix.fill();
    for (let i in matrix)
    {
        matrix[i] = new Array(cols);
    }

    for (let row = 0; row < rows; row++)
    {
        matrix[row][0] = Math.pow(2, row);
        for (let col = matrix[row][0]; col < cols; col++)
        {
            matrix[row][col] = +col + 1;
        }
    }
    console.log(matrix);
}

solve([
  '3 5'  
]);

P.S。我也尝试了这个:

for (let row = 0; row < rows; row++)
    {
        matrix[row][0] = Math.pow(2, row);
        for (let col = matrix[row][0]; col < cols; col++)
        {
            matrix[row][col] = +col + matrix[row][0];
        }
    }

1 个答案:

答案 0 :(得分:0)

我希望这会对你有所帮助。当以某个值作为第一个元素( matrix [row] [0] )开始时,您可以迭代地将每一行递增1次:

function solve(args)
{
  let arr = args[0].split(' '),
  rows = +arr[0],
  cols = +arr[1];
  let matrix = new Array(rows);
  matrix.fill();
  for (let i in matrix)
  {
    matrix[i] = new Array(cols);
  }
  for (let row = 0; row < matrix.length; row++) {
    matrix[row][0] = Math.pow(2, row);
    for (let col = 1; col < matrix[row].length; col++) {
      matrix[row][col] = col + matrix[row][0];
    }
  }
  console.log(matrix);
  return matrix;
}

solve([
'3 5'
]);
相关问题