2017-01-16 6 views
1

Я уже немного стучал головой, пытаясь понять, почему мои петли пропускают поворот в моей матрице. Я пытаюсь распечатать [[1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [4, 5, 6, 7, 8]], что в целом матрица.Javascript для петли, пропуская вращение внутри матрицы

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]; 
     } 
    } 
+0

Вы действительно хотите, чтобы третья строка выглядеть следующим образом: [4, 5, 6, 7, 8] или, скорее, примерно так: [3, 4, 5, 6, 7]? – Blauharley

+0

Точно так же, как я его написал. –

ответ

0

Надеюсь, это вам поможет. В то время как, начиная с некоторым значением в качестве первого элемента (матрицы [строка] [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' 
]); 
+0

Посмотрите на этот ответ. – Blauharley

+0

PS: небольшое улучшение сделано, чтобы сделать его немного более эффективным. – Blauharley

Смежные вопросы